IDEA中安裝Lombok插件
打開IDEA的Setting –> 選擇Plugins選項 –> 選擇Browse repositories –> 搜索lombok –> 點擊安裝 –> 安裝完成重啓IDEA –> 安裝成功
引入lombok的jar包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
Lombok優缺點
優點:
1. 能通過註解的形式自動生成構造器、getter/setter、equals、hashcode、toString等方法,提高了一定的開發效率
2. 讓代碼變得簡潔,不用過多的去關注相應的方法
3. 屬性做修改時,也簡化了維護爲這些屬性所生成的getter/setter方法等
缺點:
1. 不支持多種參數構造器的重載
2. 雖然省去了手動創建getter/setter方法的麻煩,但大大降低了源代碼的可讀性和完整性,降低了閱讀源代碼的舒適度
Lombok註解
@Data
註解在類上,會爲類的所有屬性自動生setter/getter、equals、canEqual、hashCode、toString方法,如爲final屬性,
則不會爲該屬性生成setter方法。
@Geter/@Setter
如果覺得@Data太過殘暴(因爲@Data集合了@ToString、@EqualsAndHashCode、@Getter/@Setter、@RequiredArgsConstructor的所有特性)不夠精細,可以使用@Getter/@Setter註解,此註解在屬性上,可以爲相應的屬性自動生成Getter/Setter方法
@ToString
使用該註解Lombok會生成一個toString()方法,默認情況下,會輸出類名、所有屬性(會按照屬性定義順序)
通過將includeFieldNames參數設爲true,就能明確的輸出toString()屬性。
@NoArgsConstructor
無參構造器
@RequiredArgsConstructor
部分參數構造器
@AllArgsConstructor
全參構造器
@NonNull
該註解用在屬性或構造器上,Lombok會生成一個非空的聲明,可用於校驗參數,能幫助避免空指針。
@Cleanup
該註釋自動幫助我們調用close()方法。例如:在使用io流時加上該註解就不用在finally裏關閉流了
@EqualsAndHashCode
默認情況下,會使用所有非靜態(non-static)和非瞬態(non-transient)屬性來生成equals和hasCode,也能通過exclude註解來排除一些屬性。
例子: 實例類省略了get,set,toString方法以及無參和全參構造函數