1. 程式人生 > >idea引入lombok

idea引入lombok

先加上依賴

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.22</version>
</dependency>

然後idea加入外掛lombok

安裝最新外掛。

 

然後,開啟setting,找到

這個Enable annotation processing打上勾。

--------------------------------------------------------------

@AllArgsConstructor 全參構造器
@NoArgsConstructor 無參構造器
@Data
@Accessors(chain = true)

...

lombok相關注解,原文:https://blog.csdn.net/qq_38264412/article/details/78516529 

@Getter / @Setter
可以作用在類上和屬性上,放在類上,會對所有的非靜態(non-static)屬性生成Getter/Setter方法,放在屬性上,會對該屬性生成Getter/Setter方法。並可以指定Getter/Setter方法的訪問級別。預設生成的方法屬性是public,想要修改方法可以用方法修飾符設定AccessLevel的值,比如@Getter(access = AccessLevel.PROTECTED)

@EqualsAndHashCode
預設情況下,會使用所有非瞬態和非靜態欄位來生成equals和hascode方法,也可以指定具體使用哪些屬性。但可以通過在可選的exclude引數中來排除更多欄位。或者,通過在parameter引數中命名它們來準確指定希望使用哪些欄位。

非靜態:靜態是指由static關鍵字修飾的變數或方法;反之就是非靜態。在java中,靜態變數優於非靜態量載入,所以如果靜態程式碼塊中不能引用非靜態成員的變數,會報錯。
非瞬態:瞬態是指關鍵字“transient”修飾的變數;反之為非瞬態。瞬態變數的生命週期僅存於呼叫者的記憶體中。瞬態變數不可被序列化。
@ToString
生成toString方法,預設情況下,會輸出類名、所有屬性,屬性會按照順序輸出,以逗號分割。可以通過@ToString(exclude = “id”) / @ToString(exclude = {“id”,”name”})設定不包含哪些欄位;如果繼承的有父類的話,可以設定callSuper 讓其呼叫父類的toString()方法,例如:@ToString(callSuper = true)

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
無參構造器、部分引數構造器、全參構造器,當我們需要過載多個構造器的時候,Lombok就無能為力了。

@Data
@ToString, @EqualsAndHashCode, 所有屬性的@Getter, 所有non-final屬性的@Setter和@RequiredArgsConstructor的組合,一般情況下,我們使用這個註解就足夠了。

@NonNull
可以幫助我們避免空指標。
---------------------