泛型的萬用字元

2021-10-08 15:02:59 字數 1265 閱讀 1365

萬用字元:wildcard

例如:

public

class

testwildcards

/* * 舉例:

* 想要宣告乙個方法,可以把乙個collection集合src中的所有元素,新增到另乙個collection集合dest中

*/public

void

copy

(collection

src, collection<

?super t> dest)

}@test

public

void

test04()

/* * 舉例:

* 想要宣告乙個方法,遍歷乙個裡面裝著圖形物件的集合

*/public

void

printgraphic

(collection<

?extends

graphic

> c)

}@test

public

void

test03()

@test

public

void

test01()

/* * 宣告乙個方法:這個方法可以用於遍歷所有的collection系列的集合

* 此時因為collection是乙個泛型介面,collection* 如果此時不指定的具體型別,會報警告,(1)方式一,抑制警告(2)方式二:用?來代表任意型別

* 因為此時不知道要被遍歷的集合的元素型別是什麼

*/public

void

print

(collection<

?> c)

}//以前我們說object可以接收任意型別物件,但是不代表collection可以接收任意泛型實參的集合

//collection這麼寫,只能接收collection,list...,即泛型實參必須是

/* public void print(collectionc)

}*/@test

public

void

test2()

}//圖形類

class

graphic

//圓類

class

circle

extends

graphic

//矩形類

class

rectangle

extends

graphic

泛型(萬用字元)

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...