List<Integer>和有什么区别List<? super Integer>。
哪一个是好的做法,或者我们什么时候应该使用什么?
List<Integer>是一个List绑定到一个类型的Integer。这意味着它可以接收和生产Integer.
List<? super Integer>是一个无界 List的,它接受任何是 的 aInteger或超类的值Integer。
第二个选项最好用于PECS原则(PECS代表Producer Extends,Consumer super)。如果您想根据类型添加项目T而不考虑它的实际类型,这很有用。
有关更多信息,请参阅此处的相关帖子。
最明显的区别是你可以将元素List<Integer>作为类型取出Integer,但是当你取出元素时List<? super Integer>,你只能取出类型Object。
List<Integer>是这里的最佳选择。
List<? super AbstractObject>如果您正在处理多态性,那将是更好的选择。