JDK 5.0 在語法層面帶來重大改進。雖舊版代碼幾乎無需修改即可在 JDK 5.0 運行,但透過重構升級可充分利用增強型 for 循環、自動裝箱/拆箱、泛型等特性,使代碼更緊湊且效能更優。JBuilder 專為低版本升級提供三大重構功能。
JBuilder 2005 預設 JDK 1.4.2,需手動切換:
Java 2 SDK, V 5.0 (generics enabled)Java 2 SDK, v 5.0 and later唯有完成上述設定,才能進行 JDK 5.0 相關重構。
JDK 5.0 引入更高效的循環風格:
JBuilder 提供一鍵轉換。以陣列遍歷為例,舊版代碼:
public static void arrayLoopRefactoring() {
int[] myArray = {1, 2, 3, 4};
for (int x = 0; x < myArray.length; x++) {
System.out.println(myArray[x]);
}
}
游標置於 for 迴圈行 → Ctrl+Shift+R → Introduce Foreach:

圖 22 循環重構對話框
指定迴圈變量名(如 item)確定後,生成 JDK 5.0 風格:
public static void arrayLoopRefactoring() {
int[] myArray = {1, 2, 3, 4};
for (int item : myArray) {
System.out.println(item);
}
}
基本型別與包裝類轉換在舊版需冗長代碼。JDK 5.0 自動處理。示例:
public static void autoBoxingPreliminary(Integer intObject) {
System.out.println(intObject);
}
public static void autoBoxingRefactoring() {
autoBoxingPreliminary(new Integer(8)); // 舊式調用
}
編輯器任意處 → Ctrl+Shift+R → Introduce Auto(un)boxing,JBuilder 掃描全類並批次重構:
public static void autoBoxingRefactoring() {
autoBoxingPreliminary(8); // 直接傳入基本型別
}
代碼瞬間工整許多。
舊版集合使用需顯式轉型。JDK 5.0 泛型提供編譯期型別安全並省去轉型。傳統 List 操作:
public static void genericsArrayList() {
List list = new ArrayList();
list.add(0, new Integer(23));
int total = ((Integer) list.get(0)).intValue();
System.out.println(total);
}
游標置於集合定義行(第 3 行) → Ctrl+Shift+R → Introduce Generics:

圖 23 泛型重構對話框
Type Argument 欄位 JBuilder 已自動推斷最適類型,通常無需調整。確定後:
public static void genericsArrayList() {
List list = new ArrayList();
list.add(0, new Integer(23));
int total = list.get(0).intValue(); // 無需轉型
System.out.println(total);
}
注意第 3、5 行變化。第 4 行若配合自動裝箱重構可簡化為 list.add(23)。