更新時間:2021-08-25 來源:黑馬程序員 瀏覽量:
泛型是程序設計語言的一種特性。它允許程序員在使用強類型程序設計語言編寫代碼時定義一些可變部分這些可變部分在運行前必須做出指明。在編程中用泛型來代替某個實際的類型,而后通過實際調用時傳人或推導的類型來對泛型進行替換,以達到代碼復用的目的。在使用泛型的過程中,操作數據類型被指定為一個參數,這種參數類型在類、接口和方法中,分別稱為泛型類、泛型接口、泛型方法。相對于傳統上的形參,泛型可以使參數具有更多類型上的變化,使代碼能更好地復用。例如下面這段代碼:
public class Box
private String value;
public void set (String value) {
this.value=value;
}
public String get () {
return value;
}
}
上述代碼中,定義了一個Box類,Box類中設置了一個Sring類型的數據。這時程序運行起來是沒有問題的。但是,如果需要一個能設置Integer類型數據的類,這個時候只能重新創建一個類,把value改為Integer類型的??墒?,隨著業務不斷增加,需要設置越來越多數據類型的類,這樣會使工程變得越來越“笨重”,并且安全性和重用性都非常低。泛型就能夠很好地解決上述問題。下面使用泛型改造Box類,具體代碼如下:
public class Box<T> {
private T t;
public void set (T t) {
this.t=t;
public T get () {
return t;
}
}
上述代碼中,Box類在定義時使用了“<I>”的形式,T表示此類型是由外部調用本類時指定的。這樣,在實例化類對象時可以傳入除基礎數據類型以外的任意類型數據,使類具有良好的通用性。
在泛型中,T可以使用任意的字母代替,如“<A>”“<B>”。之所以使用“<T>”是因為T是type的縮寫,表示類型。