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>