Java核心技術 筆記8 4

2021-08-28 15:58:14 字數 1628 閱讀 2008

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異常...