- 泛型:
有泛型技術(shù)之前
容器在取出對象時赴精,需要用到對象的特有內(nèi)容時佩捞,需要向下轉(zhuǎn)型,但是對象的內(nèi)容不一致祖娘,導(dǎo)致了向下轉(zhuǎn)型發(fā)生了ClassCastException失尖。
為了運行時期不出現(xiàn)類型異常〗ニ眨可以在定義容器時掀潮,就明確容器中元素的具體類型。
這樣琼富,編譯器在編譯時仪吧,就可以對集合中存儲的對象類型進(jìn)行檢查。
一旦發(fā)現(xiàn)類型不匹配鞠眉,就編譯失敗薯鼠。
好處:
1、將運行時期的問題轉(zhuǎn)移到了便宜時期械蹋,可以更好的讓程序員發(fā)現(xiàn)問題并解決問題出皇。
2、避免了向下轉(zhuǎn)型的麻煩
總結(jié):泛型就是應(yīng)用在編譯時期的一項安全機(jī)制哗戈。
泛型的擦除:編譯器通過泛型對元素類型進(jìn)行檢查郊艘,只要檢查通過,就會生成class文件,但在class文件中纱注,就將泛型標(biāo)識去掉了畏浆。
泛型的表現(xiàn):泛型技術(shù)在集合框架中應(yīng)用的范圍很大。
容器在不明確操作元素的類型的情況下狞贱,對外提供了一個參數(shù)<>刻获。泛型類
在類定義時,就明確參數(shù)瞎嬉。由使用該類的調(diào)用者蝎毡,來傳遞具體的類型。泛型方法
靜態(tài)方法無法訪問類上定義的泛型氧枣。
靜態(tài)方法需要定義泛型顶掉,泛型只能定義在方法上。通配符 <?>表示接受所有類型
限定
泛型上限 <? extends E> 表示接受所有E的導(dǎo)出類和E類型挑胸,存入的時候用上限
泛型下限 <? super E>表示接受所有E的父類型和E類型,取出的時候用下限