Lombok 簡介
ombok包提供了簡單的標注來幫助我們簡化消除一些必須有但是臃腫的java 代碼,比如getter、setter和構造函數等,這些函數一般我們通過IDE自動生成,有了lombok三兩個標注就輕鬆搞定。
為了讓Eclipse識別lombok,除了引入lombok JAR包之外,你需要安裝lombok,這樣Eclipse才不會報警告(否則即使你標注了@Data,如果你不寫setter和getter代碼的話,Eclipse會有警告)。安裝非常簡單,只需要到lombok網站中下載,然後雙擊Jar包運行即可。
安裝說明
[安裝]
安裝步驟:
#下載 lombok.jar (lombok官網)
#安裝 lombok
#重啓 eclipse
檢查:
You can check if your eclipse installation is lombok-enabled in eclipse's about dialog. The lombok version will be listed at the end of the copyright text
Eclipse 啟動後如果還在錯誤訊息,則點擊在 eclipse的Project 選項的 clean
[使用]
Maven
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
<scope>provided</scope>
</dependency>
</dependencies>
Lombok 的特色是根據 annotation 創建一些程式碼,以減少重復程式碼的數量,它提供了以下幾個 annotation:
@Getter 和 @Setter:為屬性創建 getter 和 setter
@EqualsAndHashCode:實現 equals() 方法和 hashCode() 方法
@ToString:實現 toString() 方法
@Data:上述3個 annotation 的和,會創建 getter setter equals hashCode 和 toString (最實用)
@Cleanup:關閉流
@Synchronized:對象同步
@SneakyThrows:拋出異常
@Log4j: log4j 日誌聲明
@ToString(exclude="color")
public @Data class Lure {
private String name;
private int size;
private String color;
private String style;
private boolean flag;
}
@Data 是實現所有的成員的 Get 和 Set 方法
@ToString(exclude="color")是 ToString 時候排除 color 成員變量
注意調用 flag 成員變量時候,是 isFlag 方法
What is POJO
POJO 是這樣的一種「純粹的」JavaBean,在它裡面除了JavaBean 規範的方法和屬性沒有別的東西,即 private 屬性以及對這個屬性方法的 public 的 get 和set 方法。我們會發現這樣的 JavaBean 很「單純」,它只能裝載數據,作為數據存儲的載體,而不具有業務邏輯處理的能力。
所以下面的代碼被認為是 POJO 了。
在一個 POJO
public class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
使用後,程式碼可以變成這樣
import lombok.Getter;
import lombok.Setter;
public class User {
@Getter @Setter
private int id;
@Getter @Setter
private String name;
}
甚至...再簡化成這樣
import lombok.Data;
public @Data class User {
private int id;
private String name;
}
資源
[1] Lombok 安裝、入門 - 消除冗長的 java 代碼
[2] [Mac OS] Setup lombok in Eclipse(Neon.2)