關於泛型
泛型是java1.5的新特性,泛型的本質是參數化類型,也就是將可以處理類型參數化。泛型可以用在類、接口、方法的創建中,分別稱爲泛型類、泛型接口和泛型方法。
在沒泛型的1.5之前,通過對類型Object的引用實現參數的“任意化”,帶來的缺點就是需要做顯示的強制類型轉換,而這種轉換時要求開發者對實際參數類型可以預知的情況下進行的,但是避免不了一些類型強轉出現異常,但是編譯器是不提示錯誤的,所以是一種安全隱患。
java語言引入泛型的好處就是安全簡單,泛型的好處是在編譯的時候檢查類型安全,如果類型不一致,編譯不會通過,並且所有的強制轉換都是自動和隱式的,提高代碼的重用率。
泛型類
定義一個Box類
/**
* 新建一個盒子可以裝入多種類型,T是一個可操作類型的參數
* @author zhh
*
* @param <T>
*/
public class Box<T> {
private T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
}
使用的時候可以指定具體操作的類型,在調用set方法的時候編譯器是可以檢查類型是否匹配,如果不匹配編譯器會報錯。取值的話是不需要直接類型轉換。
如下代碼,如果指定了類型爲String,set整型(int)的話,編譯器是會報錯的。而直接取值的話不用像使用Object時使用強制轉換。
public static void main(String[] args) {
Box<String> box = new Box<String>();
box.setT("abc");
System.out.println(box.getT());
}