泛型的使用與萬用字元

2021-10-07 18:27:30 字數 2909 閱讀 7470

把元素的型別設計成乙個引數,這個引數型別叫做泛型。

arraylistlist = new arraylist<>();
**舉例:

public

class

generictest

system.out.

println()

;//方式二:

iterator

iterator = list.

iterator()

;while

(iterator.

hasnext()

) system.out.

println()

;//在集合中使用泛型的情況:以arraylist為例

hashmap

map =

newhashmap

(); map.

put(

"tom"

,123);

map.

put(

"jerry"

,456);

map.

put(

"jack"

,789);

set> set = map.

entryset()

; iterator

> iterator1 = set.

iterator()

;while

(iterator1.

hasnext()

)}}

泛型類被某個類繼承

①public class suborder extends order//此時子類時普通類

由於子類在繼承帶泛型的父類時,指明了泛型型別,則例項化子類物件時,不再需要指明泛型。

②public class suborder1 extends order//此時子類也是泛型類

自定義泛型的注意點

①泛型不同的引用不能相互賦值

arraylistlist1=null;

arraylistlist2=null;

此時list1和list2不能相互賦值。

②型別推斷

orderorder1 = new order<>();
③靜態方法中不能使用類的泛型。

④異常類不能是泛型的。

⑤不能使用new e。但是可以:e elements = (e) new object;

**舉例:

//自定義泛型類

public

class

order

public

order

(string ordername, integer orderid, t ordert)

public t getordert()

public

void

setordert

(t ordert)

@override

public string tostring()

';}}

//測試自定義泛型類

@test

public

void

test1()

泛型方法

在方法**現了泛型的結構,泛型引數與類的泛型引數沒有任何關係。

換句話說,泛型方法所屬的類是不是泛型類都沒有關係。

泛型方法可以宣告為靜態的。原因:泛型引數是在呼叫方法時確定的。並非在例項化類時確定。

public

static

list

copyfromarraytolist

(e arr)

return list;

}//測試泛型方法

@test

public

void

test4()

;//泛型方法在呼叫時,指明泛型引數的型別。

list

list = order.

copyfromarraytolist

(arr)

; system.out.

println

(list)

;}

/*

雖然類a是類b的父類,但是g和g二者不具備子父類關係,二者是並列關係。

補充:類a是類b的父類,a是 b的父類

*/@test

public

void

test1()

public

void

show1

(list

list)

public

void

show

(list

list)

/*

萬用字元:?

類a是類b的父類,g和g是沒有關係的,二者共同的父類是:g<?>

*/@test

public

void

test3()

public

void

print

(list<

?> list)

}

/*

? extends a:

g<? extends a> 可以作為g和g的父類,其中b是a的子類

? super a:

g<? super a> 可以作為g和g的父類,其中b是a的父類

*/@test

public

void

test4()

如果有收穫!!! 希望老鐵們來個三連,點讚、收藏、**

泛型與萬用字元的使用

一 泛型 可以用 extends user 等進行泛型的宣告。其中extends user 的宣告方式限定了t的範圍,t只能為 user的子類。1.引數型別用在類的建立中,泛型類。2.引數型別用在介面的建立中,泛型介面。3.引數型別用在方法的建立中,泛型方法。注意泛型的宣告位置,在方法的修飾符之後,...

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

一 泛型萬用字元 子父類關係 list list1 newarraylist list list2 newarraylist list1 list2 編譯錯誤 list list null list list1 list list2 結論 讀寫問題 collection c newarraylist...

泛型(萬用字元)

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