Java泛型應該注意的細節
1、不可以用一個本地型別(如int float)來替換泛型.比如List<Integer>不能用List<int>型式
2、執行時型別檢查,不同型別的泛型類是等價的(Pair<String>與Pair<Employee>是屬於同一個型別 Pair),這一點要特別注意:即如果a instanceof Pair<String>==true的話,並不代表a.getFirst()的返回值是一個String型別
3、泛型類不可以繼承Exception類,即泛型類不可以作為異常被丟擲
4、不可以定義泛型陣列
5、不可以用泛型構造物件,即T first = new T(); 是錯誤的
6、在static方法中不可以使用泛型,泛型變數也不可以用static關鍵字來修飾
7、不要在泛型類中定義equals(T x)這類方法,因為Object類中也有equals方法,當泛型類被擦除後,這兩個方法會衝突
8、根據同一個泛型類衍生出來的多個類之間沒有任何關係,不可以互相賦值,即Pair<Number> p1; Pair<Integer> p2; p1=p2; 這種賦值是錯誤的。
9、若某個泛型類還有同名的非泛型類,不要混合使用,堅持使用泛型類
Pair<Manager> managerBuddies = new Pair<Manager>(ceo, cfo);
Pair rawBuddies = managerBuddies; 這裡編譯器不會報錯,但存在著嚴重的執行時錯誤隱患
2、執行時型別檢查,不同型別的泛型類是等價的(Pair<String>與Pair<Employee>是屬於同一個型別 Pair),這一點要特別注意:即如果a instanceof Pair<String>==true的話,並不代表a.getFirst()的返回值是一個String型別
3、泛型類不可以繼承Exception類,即泛型類不可以作為異常被丟擲
4、不可以定義泛型陣列
5、不可以用泛型構造物件,即T first = new T(); 是錯誤的
6、在static方法中不可以使用泛型,泛型變數也不可以用static關鍵字來修飾
7、不要在泛型類中定義equals(T x)這類方法,因為Object類中也有equals方法,當泛型類被擦除後,這兩個方法會衝突
8、根據同一個泛型類衍生出來的多個類之間沒有任何關係,不可以互相賦值,即Pair<Number> p1; Pair<Integer> p2; p1=p2; 這種賦值是錯誤的。
9、若某個泛型類還有同名的非泛型類,不要混合使用,堅持使用泛型類
Pair<Manager> managerBuddies = new Pair<Manager>(ceo, cfo);
Pair rawBuddies = managerBuddies; 這裡編譯器不會報錯,但存在著嚴重的執行時錯誤隱患
相關文章
- java泛型應該注意的問題。Java泛型
- 細說 Java 泛型及其應用Java泛型
- IT求職應注意哪些細節?面試前該如何準備?求職面試
- Java面試要注意哪些細節Java面試
- java泛型詳細介紹Java泛型
- Java核心之細說泛型Java泛型
- Java中泛型的詳細解析,深入分析泛型的使用方式Java泛型
- 你需要注意的Java小細節(一)Java
- JavaScript初學者應注意的七個細節JavaScript
- 每個前端應該知道的jquery 細節前端jQuery
- Java泛型應用淺析Java泛型
- 【java】【泛型】泛型geneticJava泛型
- java泛型之泛型方法。Java泛型
- java高階用法之:JNA型別對映應該注意的問題Java型別
- 泛型類、泛型方法及泛型應用泛型
- Java Thread應該注意的問題 (轉)Javathread
- Java泛型知識點:泛型類、泛型介面和泛型方法Java泛型
- java泛型之泛型陣列。Java泛型陣列
- Java 泛型Java泛型
- Java泛型Java泛型
- Java基礎系列(三十六):泛型中需要注意的地方Java泛型
- Java中的泛型Java泛型
- 第十五節 泛型泛型
- 面試官:集合使用時應該注意哪些問題?我:應該注意該注意的問題!面試
- Golang陣列注意細節Golang陣列
- QT小小細節注意點QT
- 自定義錯誤型別時應該注意的 nil !=nil型別
- Java 泛型原理Java泛型
- Java+泛型Java泛型
- java泛型一二Java泛型
- Java(7)泛型Java泛型
- Java-泛型Java泛型
- java泛型剖析Java泛型
- JAVA泛型類Java泛型
- 我理解的 Java 泛型Java泛型
- Java™ 教程(泛型的限制)Java泛型
- Java中的泛型方法Java泛型
- Java的泛型機制Java泛型