Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 分配ArrayList<;列表<;整数>&燃气轮机;使用ArrayList<;ArrayList<;整数>&燃气轮机;_Java_Generics_Arraylist - Fatal编程技术网

Java 分配ArrayList<;列表<;整数>&燃气轮机;使用ArrayList<;ArrayList<;整数>&燃气轮机;

Java 分配ArrayList<;列表<;整数>&燃气轮机;使用ArrayList<;ArrayList<;整数>&燃气轮机;,java,generics,arraylist,Java,Generics,Arraylist,为什么我不能将ArrayList分配到ArrayList中,如下所示: ArrayList<List<Integer>> x = new ArrayList<ArrayList<Integer>>(); ArrayList x=new ArrayList(); 不是所有的ArrayList都是列表,因此我可以在哪里放置列表,也可以放置ArrayList?如果这是合法的,您可以执行以下操作: ArrayList<ArrayList<I

为什么我不能将
ArrayList
分配到
ArrayList
中,如下所示:

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

不是所有的ArrayList都是列表,因此我可以在哪里放置列表,也可以放置ArrayList?

如果这是合法的,您可以执行以下操作:

ArrayList<ArrayList<Integer>> y = new ArrayList<>();
ArrayList<List<Integer>> x = y;  // Compiler error! Pretend it's OK, though.

x.add(new LinkedList<>());  // Fine, because a LinkedList<Integer> is a List<Integer>

因为您不能向该列表添加任何内容(除了literal
null
),因此不会出现
ClassCastException

因为如果
x
被键入
ArrayList
,那么您可以将任何类型的列表填充到
x
,因此这应该是合法的:

x.add(new LinkedList<Integer>());
但是有了
x
的定义,您将无法实际将任何内容放入
x

ArrayList<? extends List<Integer>>`
x.add(new LinkedList<Integer>());
ArrayList<? extends List<Integer>> x = new ArrayList<ArrayList<Integer>>();