java 泛型的淺顯認識

  1. 泛型的引入可以解決之前的集合類框架在使用過程中通常會出現的運行時刻類型錯誤(安全性更好)
  2. 類型擦除Java中的泛型基本上都是在編譯器這個層次來實現的。在生成的Java字節代碼不包含泛型中的類型信息的。使用泛型的時候加上的類型參數,會被編譯器在編譯的時候去掉。這個過程就稱爲類型擦除。因此,List<String>和List<Integer>在運行時事實上是相同的類型。類型擦除也是Java的泛型實現方式與C++模板機制實現方式之間的重要區別,C++編譯器在實例化模板的時候會進行類型檢查,從而保證類型安全。而java使用extends給出相應的邊界。
  3. 引入泛型之後的類型系統增加了兩個維度:一個是類型參數自身的繼承體系結構,另外一個是泛型類或接口自身的繼承體系結構。第一個指的是對於 List<String>和List<Object>這樣的情況,類型參數String是繼承自Object的。而第二種指的是 List接口繼承自Collection接口。List<String>List<Object>的子類
  4. 泛型類最好不要同數組一塊使用。你]這樣只能創建new List<?>[10的數組,無法創建new List<String>[10]這樣的。這限制了數組的使用能力,而且會帶來很多費解的問題。因此,當需要類似數組的功能時候,使用集合類即可。

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