实例化通过泛型给出类的类的对象

Dra*_*kin 8 java generics

可能重复:
在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.

Bri*_*new 7

由于类型擦除,你不能很好地做到这一点.这样做的标准方法是传递适当的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)