JAva汎用(gemeric)---1

1906 ワード

Java 1.5(Tiger)リリースでは汎用(generic)が追加されました.genericを追加しない前に、セットから読み込まれた各オブジェクトにタイプ変換が必要です.セットに誤ったタイプのオブジェクトが挿入されている場合、コンパイル中にエラーメッセージが表示されず、実行中にClassCastExceptionが表示されます.genericがあれば、コンパイラの各セットにどのオブジェクトタイプが受け入れられるかを教えることができます.コンパイラは自動的にあなたの挿入に変換し、コンパイルではタイプエラーのオブジェクトが挿入されたかどうかを知らせると同時に、集合から読んだオブジェクトもタイプ変換を行わなくてもいいです.
 
   1.汎用とは?
               (type parameter)      ,        。
          (generic type)。    :

   
//     :       <             >
List<E> //  ”E   “
List<String>  //  ”     “

 
   2.汎用型の各種形式
Set<Object> <!--      ,               。-->
Set<?>         <!--             ,                 。-->
Set<? extends T> <!--             ,      T T          。-->
Set<? super T>    <!--             ,      T T          。-->
Set                      <!--          。-->

 
 
   3.補充
  
 java5                。                         
       (          [Type erasure])。                        。

 
 
   4.注意
  
        。                        。

   
List<Long> list = new ArrayList<Long>();
list.add(Long.valueOf(1));
list.add(Long.valueOf(2));
List<Number> numbers = list; // this will not compile
numbers.add(Double.valueOf(3.14));
List rawList = list; //compiled

 
 
 参照文当:http://www8.cs.umu.se/kurser/tdbb24/HT05/jem/download/generics-tutorial.pdf