在泛型中可以声明多个类型参数。为了指定两个或更多个类型参数,只需要使用逗号分隔参数列表即可。
如例带有两个类型参数的泛型:
package test; //指定了两个类型参数:T和V,使用逗号将它们隔开。 public class Box<T, V> { 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<Integer,String> 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<String,String> 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)表示“任意类型”。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/16661.html