為什么要使用lombok盖呼。
- 普通的 POJO 需要寫或是用IDEA等集成開發(fā)環(huán)境生成大量gettter, setter方法
- 普通的 POJO 對于 equals 和 hashCode 等方法,也需要自己維護恩溅。特別你寫接口的時候萧恕,如果添加了
一個字段忘了維護凳厢,可能會導(dǎo)致一些bug。 - 普通的 POJO 沒有 builder 的支持沃饶,得自己實現(xiàn)該模式棠隐。
- ....
總之石抡,lombok 極大地簡化你的代碼,去掉了那些模板代碼助泽,讓你的POJO看起來更加地清爽(可以只有類名和字段的聲明啰扛,加上少量的注解)。
jar 包的下載
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
IntelliJ IDEA 中 安裝lombok插件嗡贺。
其他集成開發(fā)環(huán)境(比如 Visual Studio Code, Eclipse), 請參見官方文檔 Install部分隐解。
下面主要是對lombok features部分的翻譯
終于! 無憂無慮的 final 局部變量。 :v:
可變诫睬!類型可變的局部變量
我開始停止了焦慮厢漩,愛上了空指針 :kissing_heart:
再也不用寫 public int getFoo() {return foo;}
了。
沒必要啟動debugger來查看你的字段:讓 lombok來為你生成一個 ToString
方法吧岩臣!
讓相等變得簡單: 從你對象的字段中生成 hashCode
和 equals
的實現(xiàn)
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
按需生成構(gòu)造函數(shù): 生成不帶參數(shù)的溜嗜, 每個 final/non-null 字段一個參數(shù)的,一個字段一個參數(shù)的構(gòu)造函數(shù)架谎。
所有的都合到一起:@ToString
炸宵,@ EqualsAndHashCode
,所有字段的 @Getter
谷扣,所有非 final 字段的 @Setter
和 @RequiredArgsConstructor
的快捷方式土全!
讓不可變類變得非常容易。
... and Bob's your uncle: No-hassle fancy-pants APIs for object creation!
大膽拋出以前沒有人拋出的已檢查異常会涎!:eyes:
synchronized
做了正確的事:不要暴露你的鎖裹匙。
惰性加載是一種美德!
Captain's Log, stardate 24435.7: "What was that line again?"
Head to the lab: The new stuff we're working on.