泛型萬用字元

2021-09-22 10:00:05 字數 658 閱讀 1908

?萬用字元

?叫做萬用字元上限,比如當乙個集合的元素型別使用?號統配符的時候,表示在向這個集合是所有集合的父類。例如如下**:

public static void test2(list> ls)

@test

public void test1()

? extends t

表示 ?一定t 的子類或者t的本身,看如下**;

public static void test4(list extends aa> ls)

@test

public void test5()

但是一定要注意:? extends 只能讀資料,不能寫資料:例如:

?super t 可以向集合裡面寫資料,但是?必須t的子類或者t本身,例如有 cc 繼承 bb 繼承aa,如下**可以知道?表示子類型別而不是父類型別。

發現新增b3的時候編譯出錯了。

泛型(萬用字元)

1 宣告好泛型型別之後,集合中只能存放特定型別元素 2 泛型型別必須是引用型別 3 使用泛型後取出元素不需要型別轉換.泛型函式 當函式中使用了乙個不明確的資料型別,那麼在函式上就可以進行泛型的定義。public 泛型的宣告 返回值型別 函式名 泛型 變數名 泛型類 修飾符 class 類名 泛型 泛...

泛型 萬用字元

利用泛型技術雖然解決了向下轉型所帶來的安全隱患問題,但同時又會產生乙個新的問題 即便是同乙個類,但是由於設定泛型型別的不同,那麼其物件表示的含義也是不同,是不能夠直接進行引用操作的,例如 現在有如下乙個類。class message public t getmsg 使用萬用字元 解決引數傳遞問題 p...

泛型萬用字元

上一節講到,泛型是不變的,可有時候需要實現協變,在兩個型別之間建立某種型別的向上轉型關係,應該使用萬用字元.泛型萬用字元有三種 首先定義兩個類 class person class student extends person test public void testarraylist 上面的 看...