List<Integer> 和 List<? 超级整数>

Amb*_*mby 4 java generics

是什么区别List<Integer>List<? super Integer>

哪个是好的做法或什么时候应该使用什么?

Buh*_*ndi 5

List<Integer>是一个List限定到一个类型Integer。这意味着它可以接收和生成Integer

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

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

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