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

JBuilder 2005 代碼無縫升級 JDK 5.0:循環優化、自動裝箱與泛型重構

     編輯:Java 相關知識

JDK 5.0 在語法層面帶來重大改進。雖舊版代碼幾乎無需修改即可在 JDK 5.0 運行,但透過重構升級可充分利用增強型 for 循環、自動裝箱/拆箱、泛型等特性,使代碼更緊湊且效能更優。JBuilder 專為低版本升級提供三大重構功能。

一、設定專案基於 JDK 5.0

JBuilder 2005 預設 JDK 1.4.2,需手動切換:

  1. 安裝 JDK 5.0(官方下載)。
  2. Tools → Configure → JDKs... 指定 JDK 5.0 安裝路徑。
  3. Project → Project Properties → Paths 頁,將專案 JDK 設為 JDK 5.0。
  4. Project → Project Properties → Build → Java 頁:
    • Language features:Java 2 SDK, V 5.0 (generics enabled)
    • Target VM:Java 2 SDK, v 5.0 and later

唯有完成上述設定,才能進行 JDK 5.0 相關重構。

二、優化循環

JDK 5.0 引入更高效的循環風格:

  • 陣列遍歷
  • List 遍歷
  • Iterator 的 for 循環
  • Iterator 的 while 循環

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)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved