List<List<Integer>> sets = new ArrayList<ArrayList<Integer>>();
为什么上面给出了一个编译器错误,为什么我不能在这里使用泛型列表引用,为什么我需要使它成为特定的arraylist引用?
答案 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>