为什么我不能通过使用整数引用列表列表来创建整数arraylist的arraylist?

时间:2011-06-05 18:24:57

标签: java collections

List<List<Integer>> sets = new ArrayList<ArrayList<Integer>>();

为什么上面给出了一个编译器错误,为什么我不能在这里使用泛型列表引用,为什么我需要使它成为特定的arraylist引用?

3 个答案:

答案 0 :(得分:3)

要编译,你需要:

List<? extends List<Integer>> sets = new ArrayList<ArrayList<Integer>>();

List<List<Integer>> sets = new ArrayList<List<Integer>>();

答案 1 :(得分:1)

List<List<Integer>>可以包含任何类型的List<Integer>,例如LinkedList<Integer>List<ArrayList<Integer>>(或ArrayList<ArrayList<Integer>>)只能包含ArrayList<Integer> s。

答案 2 :(得分:0)

你必须这样做:

List<? extends List<Integer>> sets = new ArrayList<ArrayList<Integer>>();

原因与List<Integer>不是List<Number>

的原因相同