把元素的型別設計成乙個引數,這個引數型別叫做泛型。
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 類名 泛型 泛...