1、不可以用一個(gè)本地類型(如int float)來(lái)替換泛型
2、運(yùn)行時(shí)類型檢查,不同類型的泛型類是等價(jià)的(Pair與Pair是屬于同一個(gè)類型Pair),這一點(diǎn)要非凡注重,即假如a instanceof Pair==true的話,并不代表a.getFirst()的返回值是一個(gè)String類型
3、泛型類不可以繼續(xù)Exception類,即泛型類不可以作為異常被拋出
4、不可以定義泛型數(shù)組
5、不可以用泛型構(gòu)造對(duì)象,即:first = new T(); 是錯(cuò)誤的
6、在static方法中不可以使用泛型,泛型變量也不可以用static要害字來(lái)修飾
7、不要在泛型類中定義equals(T x)這類方法,因?yàn)镺bject類中也有equals方法,當(dāng)泛型類被擦除后,這兩個(gè)方法會(huì)沖突
8、根據(jù)同一個(gè)泛型類衍生出來(lái)的多個(gè)類之間沒(méi)有任何關(guān)系,不可以互相賦值,即:
Pair p1; Pair p2; p1=p2; 這種賦值是錯(cuò)誤的。
9、若某個(gè)泛型類還有同名的非泛型類,不要混合使用,堅(jiān)持使用泛型類
Pair < Manager > managerBuddies = new Pair < Manager >(ceo, cfo);
Pair rawBuddies = managerBuddies;
這里編譯器不會(huì)報(bào)錯(cuò),但存在著嚴(yán)重的運(yùn)行時(shí)錯(cuò)誤隱患。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注