為什麼使用Lombok? 當我們創建一個javaBean的時候,往往會做一些重覆性的事情,比如:getter和setter方法,toString方法,構造函數等等,如果只是有一兩個類的話我們大可使用IDE來自動生成,但是如果類有很多的話我們不可能來手動生成,這樣很浪費時間,並且會造成很多冗餘的代碼。 ...
為什麼使用Lombok?
當我們創建一個javaBean的時候,往往會做一些重覆性的事情,比如:getter和setter方法,toString方法,構造函數等等,如果只是有一兩個類的話我們大可使用IDE來自動生成,但是如果類有很多的話我們不可能來手動生成,這樣很浪費時間,並且會造成很多冗餘的代碼。而Lombok可以讓我們使用註解,很輕鬆的完成這個事情。
安裝Lombok
插件安裝
在idea的Plugins中進行搜索Lombok進行安裝
添加依賴
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
或者在搭建項目時就勾選模塊
使用Lombok
在安裝插件時,可以看到介紹上有很多註解
@Getter和@Setter
顧名思義,這兩個註解就是用來生成getter和setter方法的。如圖所示,左邊是java代碼,右邊是編譯之後的。可以看到編譯之後有了getter和setter方法。而那個無參構造是因為類本身就會有個預設的無參構造。
@AllArgsConstructor和@NoArgsConstructor
@AllArgsConstructor可以用來生成全參的構造方法,它有3個屬性,其中access可以用來修改訪問修飾符
@NoArgsConstructor可以用來生成無參構造方法,它有4個屬性,其中access可以用來修改訪問修飾符
@RequiredArgsConstructor
為每個需要特殊處理的欄位生成構造方法,它對於所有被final修飾的且未初始化的欄位有效,以及被@NonNull標記的未初始化的欄位,都會生成一個構造方法。對於標有@NonNull還會生成一個顯式的null檢查。
如圖:當變數上有@NonNull註解時,將會對帶有@NonNull的未初始化變數生成構造方法。
同理對於未初始化的未初始化的 final 欄位也是如此。如圖所示,對於被final修飾的未初始化的name和age屬性生成了構造參數,而對於初始化的description則沒有生成。
@ToString
註釋在類上,可以生成該類的toString()方法,預設情況下按照順序列印
具體用法參考官方文檔
@EqualsAndHashCode
註釋在類上,可以用來生成equals()方法和hashCode()方法
@Data
註釋在類上,用於生成getter和setter方法,equals方法,canEqual方法,hashCode方法,toString方法
@Slf4j
註解在類上,編譯時會生成日誌對象,在代碼中可以直接使用log.info,log.debug等列印日誌。
@Builder
在類上使用@Builder可以使用下麵的代碼進行賦值,
Animal animal = Animal.builder()
.name("dog")
.age(10)
.description("狗吃骨頭")
.sex("male")
.build();
如:
運行後
至於更多的用法參考官方文檔