4

List<Integer>和有什么区别List<? super Integer>

哪一个是好的做法,或者我们什么时候应该使用什么?

4

3 回答 3

5

List<Integer>是一个List绑定一个类型的Integer。这意味着它可以接收和生产Integer.

List<? super Integer>是一个无界 List的,它接受任何是 的 aInteger或超类的值Integer

第二个选项最好用于PECS原则(PECS代表Producer Extends,Consumer super)。如果您想根据类型添加项目T而不考虑它的实际类型,这很有用。

有关更多信息,请参阅此处的相关帖子。

于 2013-05-07T09:02:04.203 回答
0

最明显的区别是你可以将元素List<Integer>作为类型取出Integer,但是当你取出元素时List<? super Integer>,你只能取出类型Object

于 2013-05-07T19:09:49.510 回答
0

List<Integer>是这里的最佳选择。

List<? super AbstractObject>如果您正在处理多态性,那将是更好的选择。

于 2013-05-07T08:56:28.730 回答