[英]Get the name of the Generic (T in <T extends… >) in java
我有一个这样的类和方法:
public class Runner<T extends Domain> implements Runnable {
public void run() {
...
Runtime.getRuntime().exec(...)
...
}
我需要执行该文件并以T作为参数将T的类型传递给它(或其他允许我在执行的文件中区分不同域的字符串,但是T是扩展类Domain
的类,其中Domain
是一个抽象类。
我考虑过添加一个静态方法来返回类的名称,然后调用T.getName();
,但这不能在抽象类中完成。
我该怎么办?
谢谢!
您可以为您的类创建构造函数,在其中可以传递Class
对象并使用它:
private Class<T> clazz;
public Runner(Class<T> clazz) {
this.clazz = clazz;
}
// ...
public void runFile() {
// do smth with
clazz.getName()
}
将类型传递给类的构造函数:
public class Runner<T extends Domain> implements Runnable {
private Class<T> clazz;
public Runner(Class<T> clazz) {
this.clazz = clazz;
}
public void run() {
// Use your class here
String name = clazz.getName();
}
}
private void runFile(Class<T> classOfT) {...}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.