List<Integer>
和List<? super Integer>
有什麼區別?列表<Integer>和List <?之間的區別super Integer>
哪一個是好的做法或什麼時候我們應該用什麼?
List<Integer>
和List<? super Integer>
有什麼區別?列表<Integer>和List <?之間的區別super Integer>
哪一個是好的做法或什麼時候我們應該用什麼?
List<Integer>
是List
即界到類型Integer
。這意味着它可以接收和生產Integer
。
List<? super Integer>
是一個無限List
接受那就是Integer
一個Integer
或超類的任何值。
第二個選項是最好的PECS使用原則(佩奇代表生產者延伸消費者超級)。如果您想要根據類型T
添加項目,則無需考慮它的實際類型。
欲瞭解更多信息,請參閱相關職位here。
List<Integer>
是這裏最好的選擇。
List<? super AbstractObject>
如果你在處理多態性問題,會是更好的選擇。
最明顯的區別是,你可以得到元素出List<Integer>
作爲Integer
類型,但是當你的元素出來List<? super Integer>
,你只能得到型Object
。
在這種情況下'超級'工作嗎? – 2013-05-07 08:55:17
@Marco Forberg,是的!取決於你想達到什麼。 – 2013-05-07 08:55:49
可能的重複http://stackoverflow.com/q/3847162/1313143 – MarioDS 2013-05-07 08:56:37