Java泛型學習

JDK 5.0 中增加的泛型類型,是 Java 語言中類型安全的一次重要改進。引自:http://www.ibm.com/developerworks/cn/java/j-jtp01255.html


也就是說,凡是用到Object強制類型轉換的地方,可以換用泛型機制;凡是可以使用泛型機制的地方,可以換用Object強制類型轉換。


Java 語言中的泛型基本上完全在編譯器中實現,由編譯器執行類型檢查和類型推斷,然後生成普通的非泛型的字節碼。引自:http://www.ibm.com/developerworks/cn/java/j-jtp01255.html


數組是協變的,泛型是非協變的。

對於數組而言,協變,即Integer是Number,Integer[]也是Number[]。讀操作沒問題,寫操作存在嚴重的安全隱患。

對於泛型而言,非協變,即Integer和Number一毛錢關係都沒有,在泛型機制中,讀寫操作都是安全的。


數組能夠協變而泛型不能協變的另一個後果是,不能實例化泛型類型的數組(new List<String>[3]是不合法的),除非類型參數是一個未綁定的通配符(new List<?>[3]是合法的)。引自:http://www.ibm.com/developerworks/cn/java/j-jtp01255.html


tips:數組與泛型的結合,一定要小心。


泛型在Java中的應用

關鍵字:<,>,?,<T>,<T,V>,<T extends >,<T super >

類定義:

   public class<T,V>{

   }


方法定義:

   public <T> method(){

   }


類引用:

   List<T>




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章