Java泛型應該注意的細節

來源:互聯網
上載者:User

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; 這裡編譯器不會報錯,但存在著嚴重的執行階段錯誤隱患

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.