05.泛型 extends和super-Java第一階段

java的一個(gè)設(shè)計(jì)理念是 ,與泛型相關(guān)的異常最好是在編譯期間就被發(fā)現(xiàn) , 因此設(shè) 計(jì)了extends與super這兩種方式 。具體來(lái)說(shuō) ,List<? extends T>表示該集合中存在的都是類(lèi)型T的子類(lèi) ,包括T自 己 。

而List<? super T>表示該集合中存的都是類(lèi)型T的父類(lèi) ,包括T自己 。

List<? extends T>如果去添加元素的時(shí)候 , 因?yàn)閘ist中存放的其實(shí)是T的一種子 類(lèi) ,如果我們?nèi)ヌ砑釉?,其實(shí)不知道到底應(yīng)該添加T的哪個(gè)子類(lèi) ,這個(gè)時(shí)候橋 接方法在進(jìn)行強(qiáng)轉(zhuǎn)的時(shí)候會(huì)出錯(cuò) 。但是如果是從集合中將元素取出來(lái) ,我們可以 知道取出來(lái)的元素肯定是T類(lèi)型 。所以? extends T這種方式可以取元素而不能添 加 ,這個(gè)叫g(shù)et原則 。List<? super T>因?yàn)榇娴亩际穷?lèi)型T的父類(lèi) ,所以如果去添加T類(lèi)或者T類(lèi)子類(lèi)的 元素 ,肯定是可以的 。但是如果將元素取出來(lái) ,則不知道到底是什么類(lèi)型 ,所 以? super T可以添加元素但是沒(méi)法取出來(lái) ,這個(gè)叫put原則 。常見(jiàn)的一些泛型標(biāo)識(shí)就是T(類(lèi)型)、E(元素)、K(key)、V(value)、? (通配符 ,不確定的)這幾個(gè) ,其實(shí)填任何字母都行 。

更多內(nèi)容 公眾號(hào):天堂比不過(guò)家鄉(xiāng)
,別忘了 贊助關(guān)注哦!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容