首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 5 Generics 新特性速覽:類型安全與增強 for 循環

     編輯:Java 相關知識

泛型集合:編譯期類型檢查

// 舊寫法:運行時才報 ClassCastException
List list = new ArrayList();
list.add("Hello");
list.add(new Integer(95)); // 編譯通過
for (Iterator i = list.iterator(); i.hasNext(); ) {
    String s = (String) i.next(); // 第三次拋異常
}

// 新寫法:編譯期直接報錯
List<String> list = new ArrayList<String>();
list.add("Hello");
// list.add(new Integer(95)); // 編譯錯誤:型別不匹配
for (String s : list) { // 增強 for 循環
    System.out.println(s);
}

優勢:將類型錯誤前移至編譯階段,消除強轉,代碼更清晰安全。

增強 for 循環

List<String> list = new ArrayList<String>();
list.add("A"); list.add("B");
for (String s : list) { System.out.println(s); }
// 等價於
for (Iterator<String> it = list.iterator(); it.hasNext(); ) {
    String s = it.next(); System.out.println(s);
}

適用於實作 Iterable 的所有集合與陣列,語法糖大幅簡化遍歷代碼。

其他泛型應用

  • Map<K,V>、Set<E>、Queue<E> 等集合介面全面泛型化。
  • 自定義泛型類/方法:class Box<T> { T value; }。
  • 通配符 ? extends T、? super T 實現協變/逆變。

遷移建議

  1. 現有代碼逐步加入泛型類型參數,IDE 可自動輔助。
  2. 編譯器會提示未檢查轉換,按提示修正即可獲得類型安全。
  3. 配合增強 for 循環,代碼行數可減 30% 以上。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved