Lombok 使用徹底指南

爲何要使用lombok。

  • 普通的 POJO 須要寫或是用IDEA等集成開發環境生成大量gettter, setter方法
  • 普通的 POJO 對於 equals 和 hashCode 等方法,也須要本身維護。特別你寫接口的時候,若是添加了

一個字段忘了維護,可能會致使一些bug。git

  • 普通的 POJO 沒有 builder 的支持,得本身實現該模式。
  • ....

總之,lombok 極大地簡化你的代碼,去掉了那些模板代碼,讓你的POJO看起來更加地清爽(能夠只有類名和字段的聲明,加上少許的註解)。github

jar 包的下載

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.8</version>
    <scope>provided</scope>
</dependency>

IntelliJ IDEA 中 安裝lombok插件。

其餘集成開發環境(好比 Visual Studio Code, Eclipse), 請參見官方文檔 Install部分。
install-lombok-plugin.pngide

下面主要是對lombok features部分的翻譯

val

終於! 無憂無慮的 final 局部變量。 函數

var

可變!類型可變的局部變量ui

@NonNull

我開始中止了焦慮,愛上了空指針 spa

@Getter/@Setter

不再用寫 public int getFoo() {return foo;}了。插件

ToString

不必啓動debugger來查看你的字段:讓 lombok來爲你生成一個 ToString 方法吧!翻譯

@EqualsAndHashCode

讓相等變得簡單: 從你對象的字段中生成 hashCode 和 equals 的實現debug

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

按需生成構造函數: 生成不帶參數的, 每一個 final/non-null 字段一個參數的,一個字段一個參數的構造函數。指針

@Data

全部的都合到一塊兒:@ToString@ EqualsAndHashCode,全部字段的 @Getter,全部非 final 字段的 @Setter@RequiredArgsConstructor 的快捷方式!

@Value

讓不可變類變得很是容易。

@Builder

... and Bob's your uncle: No-hassle fancy-pants APIs for object creation!

@SneakyThrows

大膽拋出之前沒有人拋出的已檢查異常!

@Synchronized

synchronized 作了正確的事:不要暴露你的鎖。

@Getter(lazy=true))

惰性加載是一種美德!

@Log)

Captain's Log, stardate 24435.7: "What was that line again?"

experimental

Head to the lab: The new stuff we're working on.

相關文章
相關標籤/搜索