1. 程式人生 > >Java核心技術_筆記8-4

Java核心技術_筆記8-4

1 .使用遺留程式碼,利用註解讓警告消失 @SuppressWarnings(“unchecked”)

2 不能用型別引數代替基本型別double要用Double

3 .查詢只返回原始型別 if(a instanceof Pair< String>)是測試a是否是(任意型別)的一個Pair,與String無關 Pair < String> s=···; s.getClass()同理,返回Pair.class

4 .不能建立引數化陣列 Pair< String>[] table =new Pair< String>[10];錯誤 可以宣告Pair< String>[],但不能用new Pair< String>[10]初始化 收集引數化型別物件,用ArrayList<Pair< String>>

5 .向引數個數可變的方法傳遞一個泛型型別的例項。 用@SafeVarargs標註來消除建立泛型陣列的有關限制

6 .不能例項化型別變數 new T() ,new T[],T.class都是非法

7 .不能構造泛型陣列

8 .不能再靜態域或方法中引用型別變數

9 .不能丟擲或捕獲泛型類的例項

10 .消除對受查異常的檢查 Block.< RuntimeException > throwAs ( t ) ;

11 .擦除後的衝突 要想支援擦除的轉換 , 就需要強行限制一個類或類 型變數不能同時成為兩個介面型別的子類, 而這兩個介面是同一介面的不同引數化 。 class Employee implements Coinparable < Emp loyee > { . . . } class Manager extends Employee implements Comparable < Manager > { . . . } / / Error

12 .無論 S 與 T 有什麼聯絡, Pair< S> 與Pair < T>有什麼聯絡