Java中泛型的使用场景
泛型:
泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Parameterized Type)的应用,也就是说所操作的数据类型被指定为一个参数,在用到的时候在指定具体的类型。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口和泛型方法。
泛型在接口中的使用:
1 package object.genericity; 2 3 import java.util.ArrayList; 4 5 public class Interface11 { 6 public static void main(String[] args) { 7 ArrayList<String> list=new ArrayList<String>(); //限定数组列表中的类型 8 // list.add(1); //因为限定了类型,所以不能添加整形 9 // list.add(true);//因为限定了类型,所以不能添加布尔形 10 list.add("asa");//只能添加字符串 11 } 12 }
1 package object.genericity; 2 3 import java.util.ArrayList; 4 import java.util.HashSet; 5 import java.util.Map; 6 import java.util.Set; 7 8 public class Interface11 { 9 public static void main(String[] args) { 10 Set<Student> set1=new HashSet<Student>(); 11 Set<String> set2=new HashSet<String>(); 12 13 ArrayList<Set<Student>> list=new ArrayList<Set<Student>>(); //限定数组列表中的类型 14 15 list.add(set1); 16 // list.add(set2);//Set中的类型是String类型,并非Student类型,会报错 17 18 19 20 } 21 }
泛型在类名中的使用:
1 package object.genericity; 2 3 public class Class1<T> { 4 public T getClass2() { 5 return class2; 6 } 7 8 public void setClass2(T class2) { 9 this.class2 = class2; 10 } 11 12 private T class2; 13 14 public static void main(String[] args) { 15 Class1<Double> class1=new Class1<Double>(); 16 // class1.class2="ZTT"; //不符合Double类型 17 class1.class2=5.0; 18 System.out.println(class1.class2.getClass().getName());//java.lang.Double 19 } 20 }