泛型萬用字元 與 有限制的泛型萬用字元

2021-10-09 01:27:04 字數 1281 閱讀 3551

一、泛型萬用字元

子父類關係

list

list1 =

newarraylist

<

>()

list

list2 =

newarraylist

<

>()

list1 = list2//編譯錯誤

list<

?> list = null;

list = list1;

list = list2;

結論

讀寫問題

collection<

?> c =

newarraylist

();c.

add(

newobject()

);//編譯時錯誤,因為不知道c元素的型別。

c.add

(null)

;//任何乙個物件的預設值都是null,傳進去當然沒問題。

list<

?> list = null;

list

list3 =

newarraylist

<

>()

;1ist3.

add(

"aa");

list3.

add(

"bb");

list3.

add(

"cc");

list = list3;

object o = list.

get(0)

//雖然返回值是乙個未知型別,但它一定是乙個object型別

結論

二、有限制的泛型萬用字元

父類

public

class

person

子類

public

class

student

extends

person

測試

@test

public

void

test1()

泛型(萬用字元)

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

泛型 萬用字元

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

泛型萬用字元

萬用字元 叫做萬用字元上限,比如當乙個集合的元素型別使用?號統配符的時候,表示在向這個集合是所有集合的父類。例如如下 public static void test2 list ls test public void test1 extends t 表示 一定t 的子類或者t的本身,看如下 publ...