參考連線1
參考連線2
泛型的一種延伸,擴充套件.
"<? extends t> ":型別上界,表示引數化型別的可能是t 或是 t的子類
『<? super t>』:型別下界,表示引數化型別是此型別的超型別(父型別),直至object
list<? extends father> list1 = getfatherlist();//借用參考鏈結裡面的例子list1不能新增任何元素.只能取,
list list = new arraylist();
list<? super father> list1 = getfatherlist()list1只能新增father 或者father 的子類,讀取的東西只能存放在object 類裡面,
list<? super father> 新增的引數是 ? ,而 ? 是father的 父類, 所以引數 ? 可能是father 的父類 1father和2father, add時子類可以強制cast成父類father 來add,而不會造成資料丟失,
list<? super father> 的引數 ? , 可能是father 的父類 1father和2father,
1father 和 2father 如果有繼承關係還好,可以相互cast,但是資訊可能丟失,如果1father 和2father 沒有繼承關係,獲取時cast 就會異常,
寫給別人用的邏輯資料結構時,明確告訴呼叫者資料結構的限制(骨架),不能脫離範圍. 和 無限制 t 形成區別.
Java 萬用字元
考慮編寫列印出集合中所有元素的例程的問題。以下是您可以在舊版本的語言中編寫它 即5.0之前的版本 voidprintcollection collection c 問題是這個新版本比舊版本更有用。雖然可以使用任何型別的集合作為引數呼叫舊 但新 僅採用collection,正如我們剛才演示的那樣,它不...
java萬用字元 隨筆
public class tongpeifu static void unboundedarg holder holder object arg static t exact1 holderholder static t exact2 holderholder,t arg static t wild...
Java萬用字元釋疑
泛型萬用字元 例子 inte ce aa class bb class a1 extends bb implements aa class b1 extends a1 list list new arraylist list list0 new arraylist list list0 解析 lis...