在泛型中可以声明多个类型参数。为了指定两个或更多个类型参数,只需要使用逗号分隔参数列表即可。
如例带有两个类型参数的泛型:
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.com5个月前 (09-19)