- 相關(guān)推薦
java編譯器的泛型
導(dǎo)語(yǔ):泛型以限定集合中的輸入類(lèi)型,讓編譯器擋住源程序中的非法輸入。下面是相關(guān)介紹,歡迎參考!
**泛型是提供給javac編譯器使用的,可以限定集合中的輸入類(lèi)型,讓編譯器擋住源程序中的非法輸入,
編譯器編譯帶類(lèi)型說(shuō)明的集合時(shí)會(huì)去除掉“類(lèi)型”信息,使程序運(yùn)行效率不受影響,
對(duì)于參數(shù)化的泛型類(lèi)型,getClass()方法的返回值和原始類(lèi)型完全一樣。
由于編譯生成的字節(jié)碼會(huì)去掉泛型的類(lèi)型信息,只要能跳過(guò)編譯器,
就可以往某個(gè)泛型集合中加入其它類(lèi)型的數(shù)據(jù),例如,用反射得到集合,再調(diào)用其add方法即可。
**ArrayList類(lèi)定義和ArrayList類(lèi)引用中涉及如下術(shù)語(yǔ):
整個(gè)稱(chēng)為ArrayList泛型類(lèi)型
ArrayList中的E稱(chēng)為類(lèi)型變量或類(lèi)型參數(shù)
整個(gè)ArrayList稱(chēng)為參數(shù)化的類(lèi)型
ArrayList中的Integer稱(chēng)為類(lèi)型參數(shù)的實(shí)例或?qū)嶋H類(lèi)型參數(shù)
ArrayList中的<>念著typeof
ArrayList稱(chēng)為原始類(lèi)型
**參數(shù)化類(lèi)型與原始類(lèi)型的兼容性:
參數(shù)化類(lèi)型可以引用一個(gè)原始類(lèi)型的對(duì)象,編譯報(bào)告警告,
例如, Collection c = new Vector();//可不可以,不就是編譯器一句話的事嗎?
原始類(lèi)型可以引用一個(gè)參數(shù)化類(lèi)型的對(duì)象,編譯報(bào)告警告,
例如, Collection c = new Vector();//原來(lái)的方法接受一個(gè)集合參數(shù),新的類(lèi)型也要能傳進(jìn)去
**參數(shù)化類(lèi)型不考慮類(lèi)型參數(shù)的繼承關(guān)系:
Vector v = new Vector
【java編譯器的泛型】相關(guān)文章:
java泛型方法04-02
講解Java的泛型07-13
java泛型方法推薦05-25
Java泛型是什么05-03
Java的泛型擦除和運(yùn)行時(shí)泛型信息獲取04-29
初步理解Java的泛型特性分享05-17
如何安裝java語(yǔ)言編譯器03-15
java布爾型介紹03-18