JAVA之泛型

泛型的概念

通過API可以看到Collection,List,ArrayList,這幾個類里面都有,這個就是泛型,里面的E可以是任何引用數(shù)據(jù)類型,使用泛型指明了數(shù)據(jù)類型之后,這個集合里面只能存儲這種數(shù)據(jù)類型的對象。

不使用泛型時,要進行多次類型強制轉(zhuǎn)換

使用泛型之后:

泛型的優(yōu)點

可以統(tǒng)一集合中的數(shù)據(jù)類型,提高安全性

可以減少強制類型轉(zhuǎn)換

自定義泛型

通過JDK的源碼可以看到,泛型一般寫的都是或者,里面的T和E就是表示使用者指定的類型。可以自己定義一個使用泛型的類

泛型通配符

在實際工作當中,有可能通過調(diào)用某個方法來接受一個返回值List的數(shù)據(jù),這樣就不太好確定返回值中的數(shù)據(jù)類型,這樣可以使用泛型通配符<?>

List<?>list=newArrayList();//=號右邊可能是通過調(diào)用某個方法返回的List

使用泛型通配符限定子類或者父類

? extends E

向下限定,E及其子類,可以存儲當前類型的子類

? super E

向上限定,E及其父類,可以存儲當前類型的父類

定義一個Student類繼承Person

在List中方法addAll是限定了子類(? extends E),定義測試類:

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

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

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