Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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 列表与列表之间的区别是什么<;列表<&燃气轮机&燃气轮机;和列表<;?扩展列表<&燃气轮机&燃气轮机;_Java_Generics - Fatal编程技术网

Java 列表与列表之间的区别是什么<;列表<&燃气轮机&燃气轮机;和列表<;?扩展列表<&燃气轮机&燃气轮机;

Java 列表与列表之间的区别是什么<;列表<&燃气轮机&燃气轮机;和列表<;?扩展列表<&燃气轮机&燃气轮机;,java,generics,Java,Generics,这两者似乎得出了相同的结果。我错过了什么?谢谢 List<List<?>> <==> List<List<? extends Object>> <==> List<List<Number>> **(for example)** List<? extends List<?>> <==> List<? extends List<?

这两者似乎得出了相同的结果。我错过了什么?谢谢

List<List<?>>
    <==> List<List<? extends Object>>
    <==> List<List<Number>>  **(for example)**

List<? extends List<?>>
    <==> List<? extends List<? extends Object>>
    <==> List<? extends List<Number>>  **(for example)**
    <==> List<List<Number>>  **(List<Number> is a subtype of ? extends List<Number>**
列表>

列表在第一种情况下,你有一个列表,一个列表

在第二种情况下,您有一个某物列表,它扩展了某物列表

在您的示例中,代码的第二部分之所以有效,是因为
列表
确实以自己的方式扩展了
列表
。您可以阅读更多关于多态性的内容来了解原因

贝娄是一个例子,你可以用它做什么

class MyList<T> extends List<T> {}

List<List<?>> someVariable = Arrays.asList(new MyList(), new MyList()); // won't work.

List<? extends List<?>> someOtherVariable = Arrays.asList(new MyList(), new MyList()); // will work.

类MyList扩展列表{}

ListHint—尝试将
List
类型的对象传递到一个方法中,该方法接受
List>
类型的参数;您可以成功地将哪些类型添加到第二个列表中?