我正在尝试实例化一个名为“T”的泛型类来扩展“AbstractLauncher”,但我不明白我在谷歌上看到的所有主题。你可以帮帮我吗 ? 我有几个名为 ConcretXLauncher 的类,并且我的 MainClass“ConcretXLauncher”上没有,而只有可以扩展 AbstractLauncher 的泛型...
public MainClass < T extends AbstractLauncher > {
public MainClass(Config config){
//T launcher = new T(config); doesnt work, I want to do new ConcretXLauncher(config)
T launcher = newInstance(????);
// code using "launcher"
}
public static < T > T newInstance(Class clazz) {
return clazz.newInstance() ;
}
}
在其他主题中,我看到了这个函数,但我不知道如何调用它? 我必须为“clazz”论点提出什么?
最佳答案
以下是如何定义 newInstance
方法并调用它的示例:
public class Test {
public static <T> T newInstance(Class<T> clazz) throws InstantiationException, IllegalAccessException {
return clazz.newInstance();
}
static class A {
@Override
public String toString() {
return "hello";
}
}
public static void main(String[] args) throws InstantiationException, IllegalAccessException {
A a = newInstance(A.class);
System.out.println(a);
}
}
关于java - 如何做泛型类 T 的 "new"扩展 AbstractClass (JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16307940/