gpt4 book ai didi

java - 如何做泛型类 T 的 "new"扩展 AbstractClass (JAVA)

转载 作者:行者123 更新时间:2023-12-01 04:42:25 25 4
gpt4 key购买 nike

我正在尝试实例化一个名为“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com