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
可以幫助我們避免空指標。
---------------------