Java 萬用字元 學習

2021-08-30 11:42:30 字數 1013 閱讀 2373

參考連線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...