List<List<Integer>> sets = new ArrayList<ArrayList<Integer>>();
Почему вышеприведенное приводит к ошибке компилятора и почему я не могу использовать здесь ссылку на общий список, почему мне нужно сделать ее конкретной ссылкой на массив?
Для этого вам понадобится:
List<? extends List<Integer>> sets = new ArrayList<ArrayList<Integer>>();
или
List<List<Integer>> sets = new ArrayList<List<Integer>>();
A List<List<Integer>> может содержать любой тип List<Integer>, например LinkedList<Integer>. List<ArrayList<Integer>> (или ArrayList<ArrayList<Integer>>) может содержать только ArrayList<Integer> с.
List<List<Integer>>
List<Integer>
LinkedList<Integer>
List<ArrayList<Integer>>
ArrayList<ArrayList<Integer>>
ArrayList<Integer>
Вы должны сделать это так:
Причина та же, что и для List<Integer>, а не List<Number>
List<Number>