コンストラクター (の 1 つ) が、使用するリストの実装を決定できるようにしたいと考えています。私が思いついたコードは、警告なしで問題なくコンパイルされますが、IDE (Eclipse) はコメント行に文句を言います。なぜ、どのように型を推測するのですか?
public class GenericClassTest<T> {
private List<T> list;
//stuff...
public GenericClassTest(Class<? extends List> listCreator)
throws InstantiationException, IllegalAccessException {
this.list = listCreator.newInstance(); // how to infer type T? where
// does diamondoperator go?
}
public static void main(String[] args) throws InstantiationException,
IllegalAccessException {
GenericClassTest<Integer> one = new GenericClassTest<>(ArrayList.class);
GenericClassTest<String> two = new GenericClassTest<>(LinkedList.class);
one.list.add(13);
two.list.add("Hello");
System.out.println(one.list);
System.out.println(two.list);
}
}