Java 实例化通过泛型给出的类的对象
可能重复:Java 实例化通过泛型给出的类的对象,java,generics,Java,Generics,可能重复: 我有一些代码: public class foo<K> { public void bar() { K cheese = new K(); // stuff } } 公共类foo{ 公共空白栏(){ K奶酪=新的K(); //东西 } } 这不会编译,Intellij的linter告诉我,类型参数“K”不能直接实例化 我如何引用K的一个新副本,您无法很好地执行此操作,因为。执行此操作的标准方法是传递适当的类对象,并使用
我有一些代码:
public class foo<K> {
public void bar() {
K cheese = new K();
// stuff
}
}
公共类foo{
公共空白栏(){
K奶酪=新的K();
//东西
}
}
这不会编译,Intellij的linter告诉我,类型参数“K”不能直接实例化
我如何引用K
的一个新副本,您无法很好地执行此操作,因为。执行此操作的标准方法是传递适当的类
对象,并使用此对象实例化新实例
e、 g.来自:
publicstaticvoidappend(列表,类cls)引发异常{
E elem=cls.newInstance();//确定
列表。添加(元素);
}
我知道这只是一个示例,但请注意,您可以将cls
aclassThank,但您忘记添加方法调用:List ls=new ArrayList();追加(ls,String.class);即使在这种情况下,我仍然无法编译它。它需要构造函数中的一个新参数。为什么假定K
有一个无参数构造函数?
public static <E> void append(List<E> list, Class<E> cls) throws Exception {
E elem = cls.newInstance(); // OK
list.add(elem);
}