泛型第三課,自定義泛型 無多型 萬用字元 無泛型陣列

2021-06-29 07:36:15 字數 1476 閱讀 6351

泛型沒有多型

package com.pkushutong.genericity4;

/** * 多型的兩種形式

* 注:泛型沒有多型

* @author dell

* */

public class test01

//形參使用多型

public static void test(fruit f)

//返回型別使用多型

public static fruit test02()

}

萬用字元:? extends super

可以用來宣告型別及宣告方法引數上,不能用在宣告類上

?可以接受泛型的任意型別,只能接受和輸出不能修改(方法宣告時引數無法正確知道具體的型別,因此不能修改)

?extends:泛型上線 <=

?super:泛型下限 >=

package com.pkushutong.genericity4;

/** * ?表示型別不定,使用時確定型別

* ?的使用:宣告型別,宣告方法上,不能宣告類或使用時

* ?extends:小於等於上限,指定型別子類或自身

* ?super:大於等於下限,指定型別為自身或父類

* @author dell

* * @param */

public class student

public static void test(student<?> stu)

//?extends:小於等於上限,指定型別子類或自身

public static void test2(student<? extends fruit> tru)

//??super:大於等於下限,指定型別為自身或父類

public static void test3(student<? super fruit> tru)

}

泛型巢狀

宣告:巢狀使用泛型 a> a = new a>();

使用:從外到內,一層層拆分,稍微複雜一些,與呼叫沒有任何的關係,只是確定了型別而已

package com.pkushutong.genericity4;

public class bjpku

}

泛型與陣列

沒有泛型陣列,不能建立泛型陣列

可以只有宣告,可以使用?

a a1 = null;

a<?> a2 = new a<?>[10];

jdk7泛型改進

jdk7改進:宣告時指定泛型即可,建立物件不用再次編寫型別

如 aa = new a<>();

認識泛型02 自定義含有泛型類與泛型方法

定義乙個含有泛型的類,模擬arraylist集合 package com.generic 定義乙個含有泛型的類,模擬arraylist集合 泛型是乙個未知的資料型別,我們不確定什麼資料型別的時候,可以使用泛型 泛型可以接收任意的資料型別,可以使用integer,string,student.建立物件...

java自定義泛型和反射泛型介紹

泛型必須先定義再使用 在方法中使用泛型 public void aa t t public class demo1 public void bb t t 類上宣告的泛型,只對非靜態成員有效,所以在靜態方法中需要自己宣告泛型 public static void cc t t 這裡以hibernate...

自定義類使用泛型and方法使用泛型

使用泛型的自定義類,泛型可以使用任意的資料型別,在建立物件的時候確定是什麼資料型別,建立物件的時候不使用泛型,那就預設是object型別 格式 package cn.zhuobo.day10.aboutgeneric public class classgeneric public classgen...