List <integer>和List <! - 之间的区别?超级整数 - > </integer>

时间:2013-05-07 08:53:51

标签: java generics

List<Integer>List<? super Integer>之间有什么区别?

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

3 个答案:

答案 0 :(得分:4)

List<Integer>List有界类型为Integer。这意味着它可以接收并生成Integer

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

第二个选项最适用于 PECS 原则( PECS 代表 Producer Extends,Consumer super )。如果您想要根据类型T添加项目,无论其实际类型如何,这都很有用。

有关详细信息,请参阅相关帖子here

答案 1 :(得分:0)

List<Integer>是最好的选择。

如果你正在处理多态性,

List<? super AbstractObject>会更好。

答案 2 :(得分:0)

最明显的区别是,您可以将List<Integer>中的元素作为Integer类型获取,但是当您从List<? super Integer>中获取元素时,您只能获得类型Object }。