java的模板类

java的模板类可以理解为含有Object类型的类。

 

1. java的模板类的模板参数只能是参数类型,成员变量类型等,模板名是确定的。

2. 运行期,模板参数会被当作Object来处理,已经验证

3. 使用模板类的类型安全,只是利用编译器的类型检查,来自动保证运行期的类型强转的正确与安全。


[java] view plain copy
  1. class  TestTemplate  
  2. {  
  3.     public static void main(String[] args)   
  4.     {  
  5.         //vector<T> v=new vector<T>();   
  6.         Byte b=new Byte((byte)0);  
  7.         vector<Byte> v=new vector<Byte>(b);  
  8.         v.add((byte)0);  
  9.         v.add((byte)1);  
  10.         v.add((byte)3);  
  11.         v.add((byte)2);  
  12.         v.visitAll();  
  13.           
  14.     }  
  15. }  
  16.   
  17. class vector<T>{  
  18.   
  19.     private int size=0;  
  20.     private vectorElement<T> head=null;  
  21.     private vectorElement<T> last=null;  
  22.   
  23.     public vector(T datum)  
  24.     {  
  25.         System.out.println("vector(T datum)!");  
  26.         this.head=new vectorElement<T>(datum);  
  27.         this.last=this.head;  
  28.         this.size=1;   
  29.     }  
  30.   
  31.   
  32. public boolean add(T datum){  
  33.   
  34.         if(this.size==0){  
  35.             this.head=new vectorElement<T>(datum);  
  36.             this.last=this.head;  
  37.             this.size=1;  
  38.         }else{  
  39.             vectorElement<T> temp=new vectorElement<T>(datum);  
  40.             temp.previous=this.last;  
  41.             this.last.next=temp;  
  42.             this.last=temp;  
  43.             this.size=this.size+1;  
  44.         }  
  45.         return true;  
  46.   
  47.     }  
  48.   
  49.     public void visitAll()  
  50.     {  
  51.         vectorElement<T> walker;  
  52.         walker=head;  
  53.         while(walker !=null)  
  54.         {  
  55.             System.out.println(walker.datum);  
  56.             walker=walker.next;  
  57.         }  
  58.     }  
  59. }  
  60.   
  61. class vectorElement<T>{  
  62.   
  63.     public vectorElement<T> next=null;  
  64.     public vectorElement<T> previous=null;  
  65.     public T datum=null;  
  66.   
  67.     public vectorElement(T datum){ this.datum=datum; }  
  68.   
  69. }  
  70.   
  71. /* 
  72. vector(T datum)! 
  73. 0 
  74. 0 
  75. 1 
  76. 3 
  77. 2 
  78. 请按任意键继续. . . 
  79. */ 

你可能感兴趣的:(java)