java泛型 上下限

2021-06-28 07:01:57 字數 1584 閱讀 4599



指定上限為t類:表示泛型必須為t類及其子類;

指定上限為t介面:表示泛型必須為t介面及其實現類;

不管是類還是介面,格式都為extends t;

指定下限為t類:表示泛型必須為t類及其父類;

指定上限為t介面:表示泛型必須為t介面及其父介面;

不管是類還是介面,格式都為? super t;

不能只設定下限,設定下限的同時必須設定上限(引數例外);

[html]view plain

copy

print?

inte***ce inf1<

t>   

inte***ce inf2   

class a<

t>   

class  b<

t> extends a<

t> implements inf1  

class c<

t> extends b<

t>   

class d extends c   

inte***ce inf1

inte***ce inf2

class a

class bextends aimplements inf1

class cextends b

class d extends c

一、類的上限

例: 泛型t上限為b

[html]view plain

copy

print?

class dog<

t extends b>   

private void fun2()   

private void fun3()   

}  

class dog

private void fun2()

private void fun3()

}

二、類的上下限

例: t的上限為a,下限為c

[html]view plain

copy

print?

class cat<

t extends a<?

super c>

>   

}  

class cat> 

}

三、方法上限下,與類的上下限設定一樣

例:[html]view plain

copy

print?

class point<

t,k,v>   

class test   

/**  

* t為b符合t上限為a; 因為b繼承a類  

* k為b符合k上限為inf1;因為b實現了inf1  

* v為a符合v下限為b; 因為 a是b的父類  

*/  

private void fun()   

}  

泛型上下限

需求 定義乙個函式可以接受任何型別的集合物件,只能存integer或其父類型別資料。下限 定義乙個函式可以接受任何型別的集合物件,只能存number或其子類型別資料。上限 泛型萬用字元 下限 public static void print collection c super integer 泛型...

java泛型1(泛型上限下限巢狀)

extends 泛型的上限 即子類 1.一般用於限制操作 2.不能使用者新增資料操作上,一般都是讀取操作 3.規則 list list 不能存放 list因為它等同於list super 泛型的下限 即父類 1.一般用於限制操作 2.能使用者新增資料操作上,不能新增父物件 3.規則 不能存放 lis...

泛型 上限與下限

listextendsfruit list new list中為什麼不能加入fruit類和fruit類的子類呢,原因是這樣的 listfruit 表示上限是fruit,下面這樣的賦值都是合法的 listextendsfruit list1 newarraylist listextendsfruit ...