Java 泛型

Java 泛型

在泛型中可以声明多个类型参数。为了指定两个或更多个类型参数,只需要使用逗号分隔参数列表即可。

如例带有两个类型参数的泛型:

package test;

//指定了两个类型参数:T和V,使用逗号将它们隔开。

public class Box {

private T obj1;

private V obj2;

public Box(T o1,V o2) {

obj1 = o1;

obj2 = o2;

}

public void showTypes() {

System.out.println("Type of T is " + obj1.getClass().getName());

System.out.println("Type of V is " + obj2.getClass().getName());

}

public T getObj1() {

return obj1;

}

public V getObj2() {

return obj2;

}

public static void main(String[] args) {

//创建对象时必须为Box传递两个类型参数,这里Integer替换T,String替换V。

Box testObj1 = new Box<>(88,"Runoob");

testObj1.showTypes();

int t1 = testObj1.getObj1();

System.out.println("value: " + t1);

String v1 = testObj1.getObj2();

System.out.println("value: " + v1);

System.out.println("-----------------------------");

//在这个例子中,尽管两个类型参数是不同的,但是可以将两个类型参数设置为相同的类型。这T,V都是String类型

Box testObj2 = new Box<>("Hello","Runoob");

testObj2.showTypes();

String t2 = testObj2.getObj1();

System.out.println("value: " + t2);

String v2 = testObj2.getObj2();

System.out.println("value: " + v2);

}

}

输出结果:

Type of T is java.lang.Integer

Type of V is java.lang.String

value: 88

value: Runoob

-----------------------------

Type of T is java.lang.String

Type of V is java.lang.String

value: Hello

value: Runoob

注:泛型的类型参数使用大写形式,且比较短,一般一个字母。在java库中,使用变量E表示集合的元素类型。K和V分别表示键与值的类型,比如:Map的键与值。T(需要时还可以用临近的字母U和S)表示“任意类型”。

雨中漫步丶 雨中漫步丶

137***5581@qq.com

5年前 (2020-09-19)