Java中范型的作用 – JAVA編程語言程序開發技術文章

在JDK1.5之後引入瞭 范型的概念,到底什麼事范型的,在一段時間內 我也是很模糊 。。。。
下面我用一個ArrayList 來演示范型的作用  。
我們知道ArrayList 可以看做是一個線性表  ,  我們在為進行范型規范化的時候,這個線性表中可以存儲的原始類型  可以是各種各樣的類型 ,這就說明一個表中 存儲瞭不同類型的數據 。  這樣做很不安全,而且容易出錯 。
看下面一段代碼,JAVA5以前 的版本
ArrayLsit  col=new ArrayList()  ;
col.add(1) ;
col.add("string") ;
col.add(false)  ;
……
看到上面一個ArrayList中存儲各種各樣的 類型的元素 
JDK1.5進行范型規范後Generic
ArrayList <Integer>   col=new ArrayList()  ;
col.add(1)   ;//可以
 col.add("string") ; // www.aiwalls.com 會報錯,因為進行瞭范型規范之後 這個線性表中隻能存儲Integer類型的數據   ,
這樣做就很好的保證瞭集合類型的唯一性、。。。。。
 
 
以上隻是范型的簡單應用,范型在反射中也應用到瞭  。看下面一段代碼
  Constructor  con=String.class.getConstructor(StringBuffer.class) ; 
  String str=(String) con.newInstance(new StringBuffer("xiaowei"));      //註意 這裡我們對於String的構造方法映射類 創建的對象需要強制轉換
  System.out.println(str);
 
但是進行瞭范型規范之後就不需要瞭,這就是范型的作用 。
Constructor<String>  con=String.class.getConstructor(StringBuffer.class) ; 
  String str=con.newInstance(new StringBuffer("xiaowei"));
  System.out.println(str); 
 
 范型是給編譯器看的,在編譯字節碼文件之後 就會去類型化 
 
 作者 yue7603835的專欄

發佈留言