java泛型之帶有兩個類型參數的泛型示例
在泛型中可以聲明多個類型參數。為了指定兩個或更多個類型參數,只需要使用逗號分隔參數列表即可。如例:
package test; public class TwoGen<T, V> { private T ob1; private V ob2; public TwoGen(T o1,V o2) { ob1 = o1; ob2 = o2; } public void showTypes() { System.out.println("Type of T is " + ob1.getClass().getName()); System.out.println("Type of V is " + ob2.getClass().getName()); } public T getOb1() { return ob1; } public V getOb2() { return ob2; } }
package test; public class SimpGen { public static void main(String[] args) { TwoGen<Integer,String> tgObj = new TwoGen<>(88,"Generics"); tgObj.showTypes(); int t = tgObj.getOb1(); System.out.println("value: " + t); String v = tgObj.getOb2(); System.out.println("value: " + v); } }
注意TwoGen類型的聲明方式:
public class TwoGen<T,V>{......}
在此指定了兩個類型參數:T和V,使用逗號將它們隔開。創建對象時必須為TwoGen傳遞兩個類型參數,如下所示:
TwoGen<Integer,String> tgObj = new TwoGen<>(88,"Generics");
在此,Integer替換T,String替換V。在這個例子中,盡管兩個類型參數是不同的,但是可以將兩個類型參數設置為相同的類型。例如:
TwoGen<String,String> x = new TwoGen<>("A","B");
在此,T和V都是String類型。
注:泛型的類型參數使用大寫形式,且比較短,一般一個字母,這是很常見的。在java庫中,使用變量E表示集合的元素類型。K和V分別表示鍵與值的類型,比如:Map的鍵與值。T(需要時還可以用臨近的字母U和S)表示“任意類型”。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!