Martin Fowler 在經典著作《重構》中曾感嘆:若有自動化重構工具該多好,並預言重構的未來將走向工具自動化。JBuilder 正是順應這一呼聲而生,至今仍無其他工具能在重構領域望其項背。
JBuilder X 已具備重構雛形,而 JBuilder 2005 更將重構提升為獨立的 Refactor 主選單,提供以下強大功能:
重命名方法時,所有調用處必須同步修改。在擁有成百上千類的大型系統中,手動查找極其困難。JBuilder 能按語義關聯精準找出所有引用,讓你從容應對大規模變更。
對包、類、方法、欄位等元素改名能顯著提升代碼可讀性。JBuilder 如同強力協調者,在更名元素的同時同步更新所有調用點,確保修改的原子性與一致性。
支援將類中的方法提煉至新類、將大方法拆分為小方法、將重複表達式提取為臨時變量,操作直觀流暢。
在類繼承體系中上推或下移方法與欄位,如同玩「推箱子」遊戲般簡單直觀,輕鬆調整類層級結構。
JDK 5.0(代號 Tiger)引入增強型 for 循環、自動裝箱/拆箱、泛型等特性。JBuilder 提供一鍵式重構,將舊版代碼無縫轉換為 JDK 5.0 風格,體驗現代化語法帶來的開發樂趣。
針對多團隊協作場景:A 團隊開發公共模組打包為 JAR 分發給 B、C 團隊。當 A 團隊重構公共模組後,將重構記錄嵌入 JAR,B、C 團隊在 JBuilder 中即可自動應用這些變更。此功能打破了跨專案重構的阻礙,讓團隊協作更自由。
優化 import 語句、自動添加異常捕獲塊、部署描述文件重構、EJB 重構、代理方法生成等,應有盡有。
當然,演算法優化、資料庫設計優化等仍需人工完成——這也讓開發者保有不可替代的價值。
將游標置於目標代碼,喚出重構對話框(如重命名包的對話框):

圖 1 代碼重構對話框
勾選 View references before refactoring 可在執行前預覽影響範圍:

圖 2 重構預覽窗口
預覽窗口列出所有受影響位置,編輯器中代碼保持原狀。點擊資訊窗格的
按鈕應用重構;點擊
可取消。重構後建議點擊
重新編譯受影響文件,確保 .class 與 .java 同步。
| 快捷鍵 | 功能 |
|---|---|
| Ctrl+Shift+E | 提煉方法 |
| Ctrl+Shift+V | 引入變量 |
| Ctrl+Shift+C | 自動添加異常捕獲代碼 |
後文將以 Ctrl+Shift+R → 選單項 簡寫表示操作路徑。
確認執行。
編譯受影響文件,保持同步。JBuilder 將每次重構視為一個事務:若重命名類涉及類名、建構子、檔名、引用更新等多步驟,任一步驟失敗(如 I/O 錯誤)將導致整個事務回滾,所有變更不生效。此機制確保重構的安全性與完整性。
由於 JBuilder 透過類語義關聯查找引用,重構前必須確保 .class 與 .java 一致。若上次編譯後修改過源碼,請先重新編譯,避免引用同步遺漏。