我在學習集合的時候對泛型還不太了解,只是覺得用了泛型之後能向自己的集合裡加入自己指定型別的物件,可以減少資料型別的轉換。那麼,脫離集合後,泛型到底該如何使用。今天碰巧看了一段關於泛型的講解,覺得泛型也沒有自己想象中那麼難,於是將自己的心得分享出來,希望能幫到有需要的人。
泛型的知識點大概有:泛型類,限制泛型,泛型方法,泛型介面。
泛型類
下面泛型類的例子就非常簡單明瞭了,泛型類一般只需在類名後加符號(t表示一種資料型別,像integer,string),裡面的字母是可以隨便取的,如a,b,c
public class cc
public t getob()
public void setob(t ob)
}public class textcc
}
限制泛型
其實限制泛型也非常的簡單,就在類名後加,像下面例子裡的demo,表示的是往demo裝的物件必須是animal型別或者繼承animal的子類型別,如demoanimal = new demo(new animal()); 放其它型別的物件則會編譯出錯。
package fanxing;
public class animal
}package fanxing;
public class cat extends animal
}package fanxing;
public class dog extends animal
}package fanxing;
public class demo
public t gett()
public void sett(t t)
public void print()
}package fanxing;
public class t_testdemo
}
泛型萬用字元
package fanxing;
public class testtpf
public static void main(string args)
}
泛型方法
可以通過泛型輸出這樣的陣列
或者可以指定只有某種物件才能使用這種方法,這裡表示只有dog類及其子類物件才能使用f方法,其他物件則編譯出錯。
package fanxing;
public class fxway
}public staticvoid f(t t)
public static void main(string args) ;
print(a);
dog rr = new dog();
f(rr);
cat r2 = new cat();
// f(r2);
}}
泛型 泛型簡介和泛型類
在泛型引入之前,如果我們需要產生多個物件,每個物件的邏輯完全一樣,只是物件內的成員變數的型別不同,那麼我們只能建立多個類檔案,給每個類的成員變數設定不同的資料型別。這麼做會導致類的膨脹,重用性太差。一種方式是對將object作為變數型別,但是需要對獲取的資料進行強制型別轉換,這個過程可能導致型別轉換...
泛型 泛型類 泛型方法 泛型擦除
1 是什麼?一種允許我們在不確定引數型別時候使用的型別。例如我不知道a方法應該會傳string還是int,我就用個泛型先佔坑。2 為什麼要用泛型?泛型可以在編譯期自動確定具體型別,檢查型別是否匹配,可以提高 的重用率,減少冗餘編碼。3 泛型與object的區別?像上面說的我不知道方法a的引數型別,其...
JAVA 泛型類和泛型方法(靜態方法泛型)
泛型類定義的泛型,在整個類中有效。如果被方法是用,那麼 泛型類的物件明確要操作的具體型別後,所有要操作的型別就已經固定了。為了讓不同的方法可以操作不同型別,而且型別還不確定。那麼 可以將泛型定義在方法上。泛型類class demo public void print t t class generi...