在日常 Java 開發中,Eclipse 的正則表達式搜尋/替換功能是提升編碼效率的利器。本文分享兩個實戰場景:為組合模式生成的代理方法自動加上空指針判斷,以及快速完成構造函數中的屬性賦值代碼。
當使用組合模式時,Eclipse 可以自動生成委託給內部對象的代理方法。但生成的代碼缺乏空值保護,直接調用可能拋出 NullPointerException。例如:
public void method1() {
if1.method1(); // 若 if1 為 null 會拋出異常
}
我們可以使用正則表達式批量修改:
(\w+method\d)(\..*)if($1 != null){$0}執行後代碼變為:
public void method1() {
if(if1 != null){
if1.method1();
}
}
正則解析: (\w+method\d) 捕獲方法名(如 if1method1),(\..*) 捕獲後續的點號調用鏈。替換時用 $1 判斷非空,$0 保留原完整調用語句。
面對大量字段的構造函數,手寫 this.field = field; 既繁瑣又易出錯。利用正則可秒級完成:
(\w+) (在參數列表中選中所有參數名)this.$1 = $1配合 Eclipse 的列塊選擇模式,可精確控制替換範圍,避免誤傷其他同名變量。
正則表達式在 Eclipse 中的應用遠不止於此:提取介面、重命名模式、日誌語句統一格式化等皆可嘗試。掌握捕獲組(())、反向引用($1)、邊界匹配(\b)等核心語法,能讓重構操作從「手工苦幹」轉為「智慧巧幹」。