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>
类型的参数;您可以成功地将哪些类型添加到第二个列表中?