8

重複の可能性:
Java でジェネリック型のインスタンスを作成しますか?

私はいくつかのコードを持っています:

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

これはコンパイルされず、Intellij のリンターが教えてくれType parameter 'K' cannot be instantiated directlyます。

の新しいコピーをインスタンス化するにはどうすればよいですかK

4

1 に答える 1

7

タイプeraser のため、これをうまく行うことはできません。これを行う標準的な方法は、適切なオブジェクトを渡し、Classこれを使用して新しいインスタンスをインスタンス化することです。

例えばここから:

public static <E> void append(List<E> list, Class<E> cls) throws Exception {
    E elem = cls.newInstance();   // OK
    list.add(elem);
}
于 2013-01-29T16:18:39.033 に答える