Java中的泛型的使用:1.普通的泛型使用在使用类的时候后面的<>中的类型就是我们确定的类型。public class MyClass1 { //此处定义的泛型是T private T var; public T getVar() { return var; } public void setVar(T var) { this.var = var; }}/** * 最普通的泛型使用,只有一个泛型类型 */@Testpublic void testMyClass1() { MyClass1 clazz = new MyClass1 ();//此事确定对象对应的泛型T是String clazz.setVar("stringType"); String str = clazz.getVar(); System.out.println(str);}和普通的泛型使用基本一样,只是我们可以在使用类的时候定义两个不同的泛型类型,当然我们也可以定义多个,只要我们业务需要。public class MyClass2 { //此处定义两个泛型类型 private K var1;//第一个变量的类型是K对应的具体类型 private V var2;//第二个变量的类型是V对应的具体类型 public K getVar1() { return var1; } public void setVar1(K var1) { this.var1 = var1; } public V getVar2() { return var2; } public void setVar2(V var2) { this.var2 = var2; }}/** * 含有两个泛型类型的使用 */@Testpublic void testMyClass2() { //此处确定定义的clazz对象的第一个泛型类型是Integer,第二个泛型类型是String MyClass2 clazz = new MyClass2 (); clazz.setVar1(1); //此处只能用int类型的参数 clazz.setVar2("string");//此处只能用String类型的参数 System.out.println(clazz.getVar1() + "," + clazz.getVar2());}这里面又包含3种:没限制的通配符、使用extends限制、使用super限制public class MyClass3 { private T var; public T getVar() { return var; } public void setVar(T var) { this.var = var; } @Override public String toString() { return var.toString(); }}/** * 通配符?的使用 包括 、<?extends 类型>和<? super 类型> */@Testpublic void testMyClass3() { MyClass3 clazz = new MyClass3 (); clazz.setVar(false); fun(clazz);//调运该方法的时候,对泛型没有限制,任何类型的泛型都可以使用 MyClass3 clazzInt = new MyClass3 (); clazzInt.setVar(1); funExtends(clazzInt);//调运该方法的时候,只能使用Number类型或者其子类型 MyClass3 clazzDouble = new MyClass3 (); clazzDouble.setVar(2.2); funExtends(clazzDouble);//调运该方法的时候,只能使用Number类型或者其子类型 MyClass3 clazzString = new MyClass3 (); clazzString.setVar("string"); funSuper(clazzString);//调运该方法的时候,只能使用String类型或者其父类型 MyClass3