Lombok 是一個 Java Archive (JAR) 檔案,專門用來消除 Java 代碼的冗長。它透過註解在編譯時自動生成常見的樣板代碼,如 getter、setter、toString()、equals() 和 hashCode() 等方法,讓開發者專注於業務邏輯而非重複勞動。
一個典型的 Java Bean 通常包含多個屬性,每個屬性都需要 getter 和 setter,再加上標準的 toString()、equals() 和 hashCode() 方法。這樣的代碼不僅冗長,而且極易出錯。Lombok 的出現正是為了解決這個痛點:只需在類上加一個 @Data 註解,所有這些方法就會在編譯時自動生成。
lombok.jar。java -jar lombok.jar(或直接雙擊 JAR 檔)。注意: 若不使用支援的 IDE,仍可在建構路徑加入 lombok.jar 享有編譯時期的好處,但失去即時編碼提示。
import lombok.Data;
@Data
public class Lure {
private String name;
private int size;
private String color;
private String style;
}
加上 @Data 後,Lombok 會自動生成所有欄位的 getter/setter、toString()、equals() 和 hashCode()。在 Eclipse 的 Outline 視圖中即可看到這些方法。
@Getter(AccessLevel.PROTECTED) private int size;
將 getSize() 設為 protected,僅允許子類與本類存取。
@ToString(exclude = "color")
@EqualsAndHashCode(exclude = "style")
@Data
public class Lure { ... }
@ToString 排除 color,@EqualsAndHashCode 排除 style,生成的方法將不包含這些欄位。
@Cleanup InputStream in = new FileInputStream(args[0]);
@Cleanup OutputStream out = new FileOutputStream(args[1]);
// 寫入檔案邏輯
編譯器會自動在 finally 區塊關閉資源,省去冗長的 try-catch-finally。
@Synchronized
private int foo() { ... }
Lombok 會自動建立私有鎖物件($lock 或 $LOCK),避免使用 synchronized(this) 造成的公開鎖風險。也可指定自訂鎖物件:@Synchronized("myLock")。
Lombok 大幅減少樣板代碼,提升可讀性與維護性。特別是當 Bean 屬性眾多時,只需關注少數需客製化的方法,其餘皆自動生成。立即在專案中引入 Lombok,體驗乾淨俐落的 Java 開發吧!