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>
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>有什麼聯絡
13 .可將引數化型別轉換為乙個原始型別
pair< employee>是原始型別pair的子型別
14 .泛型類可以擴充套件或實現其他泛型類
arraylist< t>類實現list< t>介面
arraylist< t>可轉換為list< t>
15 .萬用字元型別
pair< ? extends employee>
表示任何泛型pair型別,型別引數時employee的子類
但不能呼叫方法
void setfirst(pair< ? extends employee>)
16 .超型別限定:限制為manager的所有超型別
? super manager
17 . 帶有超型別限定的萬用字元可以向泛型物件寫入 帶有子型別限定的萬用字元可以從泛型物件讀取
void setfirst ( ? super manager )
18 .超類可以輔助
public static < t extends conparable < ? super t >> t min(t [ ] a)
19 .無限定通匹配符pair< ?>
? getfirst ( )
void set first (?)
20 .反射允許你在執行時分析任意的物件
Java核心技術 筆記6 7
1 repeat 10 0 system.out.println hello world 要接受此lambda表示式,需要提供函式式介面 public static void repeat int n runnable action action.run 會執行lambda表示式主體 2.不止乙個函...
Java核心技術 筆記6 8
1.區域性內部類中,若只建立乙個類的物件 只用了一次 就不用命名了,即 匿名內部類 public void start int interval,boolean beep timer t new timer interval listener t.start 0 形式即 new supertype ...
Java核心技術 筆記7 1
1.異常物件都是派生於 throwable 類的乙個例項 非受查異常 error層描述內部錯誤 和 資源耗盡錯誤 由程式導致的異常屬於runtimeexception 受查異常 程式本身沒有問題,執行時產生的錯誤 如io,取決於環境而非 屬於其他異常 2.用throws宣告異常 不宣告error異常...