Java程式的泛型應該注意的9個地方?

Tags: 地方, 程式, 泛型,

  1、不可以用一個本地型別(如int float)來替換泛型

  2、執行時型別檢查,不同型別的泛型類是等價的(Pair與Pair是屬於同一個型別Pair),這一點要特別注意,即如果a instanceof Pair==true的話,並不代表a.getFirst()的返回值是一個String型別

  3、泛型類不可以繼承Exception類,即泛型類不可以作為異常被丟擲

  4、不可以定義泛型陣列

  5、不可以用泛型構造物件,即:first = new T(); 是錯誤的

  6、在static方法中不可以使用泛型,泛型變數也不可以用static關鍵字來修飾

  7、不要在泛型類中定義equals(T x)這類方法,因為Object類中也有equals方法,當泛型類被擦除後,這兩個方法會衝突

  8、根據同一個泛型類衍生出來的多個類之間沒有任何關係,不可以互相賦值,即:

  Pair p1; Pair p2; p1=p2; 這種賦值是錯誤的。

  9、若某個泛型類還有同名的非泛型類,不要混合使用,堅持使用泛型類

  Pair < Manager > managerBuddies = new Pair < Manager >(ceo, cfo);

  Pair rawBuddies = managerBuddies;

相關問題答案