可能重复:
在Java中创建泛型类型的实例?
我有一些代码:
public class foo<K> {
public void bar() {
K cheese = new K();
// stuff
}
}
Run Code Online (Sandbox Code Playgroud)
这不编译,Intellij的linter告诉我Type parameter 'K' cannot be instantiated directly.
我将如何实例化新副本K.
由于类型擦除,你不能很好地做到这一点.这样做的标准方法是传递适当的Class对象,并使用它来实例化一个新实例.
例如从这里:
public static <E> void append(List<E> list, Class<E> cls) throws Exception {
E elem = cls.newInstance(); // OK
list.add(elem);
}
Run Code Online (Sandbox Code Playgroud)