Java泛型總結(集合泛型 方法泛型 萬用字元)

2021-06-24 18:08:49 字數 1848 閱讀 2148

/*

1,泛型的限定

*/ public static void main(string args)

swap(new string,1,2);

swap(new integer,2,3);//泛型引數必須為引用型別;

}/*2,泛型方法:

泛型類定義的反應,在整個類中有效,如果被方法使用,那麼泛型類的物件明確要操作的具體型別後,所有要操作的型別就已經固定了.

為了讓不同方法可以操作不同型別,而且型別還不確定,那麼可以將泛型定義在方法上.

*/ private static void swap(t a,int i,int j)

add(3,5);

number x1 = add(3.5,3);//返回是number型別

object x2 = add(3,"abc");//

private static t add(t x,t y)

/*3,利用泛型的方法限定,來轉換引數型別

*/ object boj="abc";

string x3 = autoconvert(obj);

private static t autoconvert(object obj)

/*4,簡單應用

*/ private static void fillarray(t a,t obj)

collection.add(obj);//用了泛型代替?萬用字元後,就可引用帶引數的方法了;

}/*5,萬用字元<?>,也可以理解為佔位符號

? extends e:可以接受e型別或者e的子型別 上限 <? extends e>

? super e:可以接受e或e的父型別 下限 <? super e>

arraylist<? extends object> al = new arraylist(); al.add("aa"); //錯

因為集合具體物件中既可儲存string,也可以儲存object的其他子類,所以新增具體的型別物件不合適,型別檢查會出現安全問題.

*///6,泛型的傳播

copy1(new vector(),new string[10]);//可以

copy2(new date[10],new string[10]);//可以

//copy1(new vector(),new string[10]);//錯誤

public static void copy1(collectiondest,t src)

public static void copy2(t dest,t src)}/*

7,new物件時,兩邊的泛型相容性

一邊使用泛型,一邊使用原始型別時,是可以相容的;

兩邊都使用泛型是,泛型引數不具備繼承性;

arraylistal = new arraylist(); //錯

*//*

8,定義泛型型別

如果類的例項物件中的多處都要用到同乙個泛型引數,即這些地方引用的泛型型別要保持同乙個實際型別時,這時候就要採用泛型型別的方式進行定義,也就是類級別的泛型.

public class genericdao

public t findbyid(int id){}

public void delete(t obj){}

public void delete(int id){}

public void update(t obj){}

public t findbyusername(){}

public setfindbyconditions(string where)}*/

/*9,靜態方法不能定義泛型,因為靜態載入時,還不知道有什麼物件,造成衝突;

*/

泛型 泛型類 泛型方法 泛型擦除

1 是什麼?一種允許我們在不確定引數型別時候使用的型別。例如我不知道a方法應該會傳string還是int,我就用個泛型先佔坑。2 為什麼要用泛型?泛型可以在編譯期自動確定具體型別,檢查型別是否匹配,可以提高 的重用率,減少冗餘編碼。3 泛型與object的區別?像上面說的我不知道方法a的引數型別,其...

泛型集合,非泛型集合

arraylist 非泛型集合 list 泛型集合 集合跟陣列比較我們更容易理解。陣列 1,長度固定2,資料型別預先宣告 集合 1,長度可變2,資料型別預先宣告的為泛型集合,資料型別不限定為非泛型 arraylist 長度不固定,元素資料型別為object的集合。object類之間或間接為所有類的父...

JAVA 泛型類,限制泛型和泛型方法

我在學習集合的時候對泛型還不太了解,只是覺得用了泛型之後能向自己的集合裡加入自己指定型別的物件,可以減少資料型別的轉換。那麼,脫離集合後,泛型到底該如何使用。今天碰巧看了一段關於泛型的講解,覺得泛型也沒有自己想象中那麼難,於是將自己的心得分享出來,希望能幫到有需要的人。泛型的知識點大概有 泛型類,限...