List<List<Integer>> sets = new ArrayList<ArrayList<Integer>>();
为什么上面给出了一个编译器错误,为什么我不能在这里使用泛型列表引用,为什么我需要使它成为特定的arraylist引用?
要进行编译,您需要:
List<? extends List<Integer>> sets = new ArrayList<ArrayList<Integer>>();
或
List<List<Integer>> sets = new ArrayList<List<Integer>>();
List<List<Integer>>
可以包含任何类型的List<Integer>
,例如LinkedList<Integer>
。List<ArrayList<Integer>>
(或ArrayList<ArrayList<Integer>>
(只能包含ArrayList<Integer>
s。
你必须这样做:
List<? extends List<Integer>> sets = new ArrayList<ArrayList<Integer>>();
原因与List<Integer>
不是List<Number>
的原因相同