java泛型中的super和extend


List<? extend Fruit> list=new ArrayList<>();  解釋為:集合中元素是繼承自Fruit,究竟是何種類型,編譯器也無法判定。

如果要從集合中讀取類型T的數據,並且不能寫入,可以使用 ? extends 通配符;(Producer Extends) 

 

 

List<? super Apple> list=new ArrayList<>();解釋為:集合中的元素是Apple的父類,無法判定具體類型。

如果要從集合中寫入類型T的數據,並且不需要讀取,可以使用 ? super 通配符;(Consumer Super) 

 

 

如果既要存又要取,那么就不要使用任何通配符。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM