一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类型。如果编写可以应用于多种类型的代码,将受限于java的强类型束缚。有一种不安全的写法,是使用Object。javaSE5中有了泛型,解决了这个问题。

泛型的应用场景之一,就是容器类,用于持有其他任意类实例。比如,java集合框架中的List,Set,Map。

 

   
   
   
   
  1. package tik4.generic; 
  2.  
  3. import java.util.ArrayList; 
  4. import java.util.List; 
  5.  
  6. public class Holder { 
  7.     private T t; 
  8.     public Holder(T t) { 
  9.         this.t = t; 
  10.     } 
  11.     public T get() { 
  12.         return t; 
  13.     } 
  14.     public void set(T t) { 
  15.         this.t = t; 
  16.     } 
  17.     public static void main(String[] args) { 
  18.         List strList0 = new ArrayList(); 
  19.         strList0.add("firStr"); 
  20.         Holder> holder = new Holder>(strList0); 
  21.  
  22.         List strList1 = new ArrayList(); 
  23.         strList0.add("secStr"); 
  24.         // OK 
  25.         holder.set(strList1); 
  26.  
  27.         List intList = new ArrayList(); 
  28.         // 不能编译 
  29.         // holder.set(intList); 
  30.     }