泛型---泛型類詳解
阿新 • • 發佈:2022-04-20
泛型
JDK1.5引入,泛型的本質是引數化型別,把型別作為引數傳遞。
分類:
泛型類 泛型介面,泛型方法
格式
-
<T,....>T表示一種型別的佔位符,T是一個引用型別,
-
可以是多種型別,但是要用逗號隔開,
好處
提高程式碼的重用性
防止型別轉換異常,提高程式碼的安全性。
泛型類
語法:
-
類名<T,E,K>,
-
可以是一種型別也可以是多種型別。用逗號隔開類名<T,E,K>
泛型類
public class myGeneric<T> {
}
建立變數(不能例項化物件)
T t;
作為方法的引數
public void show(T t){
System.out.println(t);
}
作為方法的返回值
public T getT(){
return t;
}
為什麼不能例項化物件
T t = new T();不可以這樣子的
因為不能保證,執行時候,傳遞過來的引用型別的構造方法有沒有,能不能訪問,能不能用
//泛型類
public class myGeneric<T> {
//建立變數(不能例項化物件)
T t;
//作為方法的引數
public void show(T t){
System.out.println(t);
}
//作為方法的返回值
public T getT(){
return t;
}
}
//建立泛型類(寫上引用型別)
myGeneric<String> myGeneric=new myGeneric<>();
public class genericText {
public static void main(String[] args) {
//建立泛型類物件
myGeneric<String> myGeneric=new myGeneric<String>();
//
myGeneric.t="給變數賦值";
System.out.println(myGeneric.t);
myGeneric.show("給show方法傳引數");
String S=myGeneric.getT();
System.out.println("列印作為返回值: "+S);
//給變數賦值
//給show方法傳引數
//列印作為返回值: 給變數賦值
myGeneric<Integer> inte=new myGeneric<>();
inte.t=333;
Integer i=inte.getT();
System.out.println(i);
inte.show(500);
//333
//500
注意
-
-
不同型別泛型物件不能相互複製