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 }

 

posted @ 2017-12-20 14:15  ztt_tttt  阅读(1816)  评论(0编辑  收藏  举报