1. 程式人生 > 其它 >泛型---泛型類詳解

泛型---泛型類詳解

泛型

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

 

注意

  1. 泛型只能使用引用型別

  2. 不同型別泛型物件不能相互複製