java泛型之帶有兩個類型參數的泛型示例

jopen 10年前發布 | 168K 次閱讀 java泛型 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表示集合的元素類型KV分別表示鍵與值的類型,比如:Map的鍵與值。T(需要時還可以用臨近的字母US)表示“任意類型”。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!