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

时间:2013-01-29 16:17:07

标签: java generics

  

可能重复:
  Create instance of generic type in Java?

我有一些代码:

public class foo<K> {
    public void bar() {
        K cheese = new K();
        // stuff
    }
}

这不编译,Intellij的linter告诉我Type parameter 'K' cannot be instantiated directly

我如何实例K的新副本。

1 个答案:

答案 0 :(得分:7)

由于type erasure,你不能很好地做到这一点。执行此操作的标准方法是传递适当的Class对象,并使用它来实例化新实例。

e.g。来自here

public static <E> void append(List<E> list, Class<E> cls) throws Exception {
    E elem = cls.newInstance();   // OK
    list.add(elem);
}