Think in Java 十二 泛型

2021-06-28 21:48:25 字數 721 閱讀 3211

1.使用泛型方法可以取代將整個類泛型話,要定義泛型方法,只需將泛型引數列表至於返回值之前:

public class genericmethods 

public static void main(string args)

}

2.可變引數可以和泛型方法很好的共存:

public class genericvarargs 

public static void main(string args)

}

3.邊界使你可以在用於泛型的引數型別上設定限制條件。

class aaa

4.<? extends t>不是乙個集合,而是t的某一種子類的意思,記住是一種,單一的一種,問題來了,由於連哪一種都不確定,帶來了不確定性,所以是不可能通過 

add()來加入元素。你或許還覺得為什麼add(t)不行? 因為<? extends t>是t的某種子類,能放入子類的容器不一定放入超類,也就是沒可能放入t

public class genericsandcovariance 

}

5.<? super t>這裡比較容易使用,沒<? extends t>這麼多限制,這裡的意思是,以t類為下限的某種類,

簡單地說就是t類的超類。但為什麼add(t)可以呢?因為能放入某一類的容器一定可以放入其子類,多型的概念。

第十二章 泛型

源 保護 型別安全 更加清晰的 更佳的效能.減少裝箱和拆箱的操作 c 的標準模板庫的部分集合類 開放型別和封閉型別乙個泛型的所有型別實參傳遞的都是實際的資料型別,則成為封閉型別.具有泛型型別引數的型別成為開放型別,clr禁止構造開放型別的例項.類似禁止構造介面例項.如 var t typeof di...

泛型 泛型類 泛型方法 泛型擦除

1 是什麼?一種允許我們在不確定引數型別時候使用的型別。例如我不知道a方法應該會傳string還是int,我就用個泛型先佔坑。2 為什麼要用泛型?泛型可以在編譯期自動確定具體型別,檢查型別是否匹配,可以提高 的重用率,減少冗餘編碼。3 泛型與object的區別?像上面說的我不知道方法a的引數型別,其...

泛型 (2)泛型類 泛型方法 泛型介面

一 泛型類 定義person類 package cn.itcast.p2.bean public class person implements comparable public person string name,int age public int compareto person p ov...