泛型:? ArrayList? 尖括號(hào)里面的就是泛型。
ArrayList中的E表示引用數(shù)據(jù)類(lèi)型壳快。
泛型技術(shù)是給編譯器使用的技術(shù)纸巷,用于編譯時(shí)期,確保了類(lèi)型的安全眶痰。
運(yùn)行時(shí)瘤旨,會(huì)將泛型去掉,生成的class文件中是不帶泛型的竖伯,這個(gè)稱(chēng)為泛型的擦除存哲。
為什么擦除呢?因?yàn)闉榱思嫒葸\(yùn)行時(shí)的類(lèi)加載器黔夭。
擦除補(bǔ)償宏胯;取出來(lái)的時(shí)候自動(dòng)類(lèi)型轉(zhuǎn)換。
jdk1.5出現(xiàn)的安全機(jī)制本姥。
好處肩袍;
1.將運(yùn)行時(shí)期的問(wèn)題ClassCastException賺到了編譯時(shí)期。
2.避免了強(qiáng)制轉(zhuǎn)換的麻煩婚惫。
泛型類(lèi):在jdk1.5之后氛赐,使用泛型來(lái)接受類(lèi)中要操作的引用數(shù)據(jù)類(lèi)型。這個(gè)類(lèi)就叫做泛型類(lèi)先舷。
什么時(shí)候用艰管?當(dāng)類(lèi)中操作的引用數(shù)據(jù)類(lèi)型不確定的時(shí)候,就使用泛型類(lèi)蒋川。
泛型接口:同上牲芋。
泛型方法:public static void show(Collection coll),在返回值類(lèi)型的前面,在方法修飾符的后面。
等同于 public static void show(Collection coll)
泛型的通配符:缸浦? 未知類(lèi)型
泛型的上限:Collection ?包括Person跟Person的子類(lèi)夕冲。
泛型下限:Collection ?包括Person跟Person的父類(lèi)。