Lombok基礎使用介紹

Lombok項目是一個Java庫,它會自動插入編輯器和構建工具中,Lombok提供了一組有用的註釋,用來消除Java類中的大量樣板代碼。僅五個字符(@Data)就可以替換數百行代碼從而產生乾淨,簡潔且易於維護的Java類。

官網地址:https://projectlombok.org/

 

一、安裝插件

這裏以Intellij IDE(Mac版)爲例,依次打開 Preferences -> Plugins -> 搜索Lombok插件安裝。

我這裏已經安裝了,所以是update。

 

 

二、添加依賴

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

 

三、val和val的使用

val、val關鍵字在定義一個變量時候不需要指定它的類型,它的類型由初始化的表達式推斷。

(1)var 所聲明的變量是非 final 的。

var example = new ArrayList<String>();
example.add("Hello, World!");

編譯後的代碼:

ArrayList<String> example = new ArrayList<String>();
example.add("Hello, World!");

 

(2)val 所聲明的變量是 final 的。

val foo = example.get(0);

編譯後的代碼:

final String foo = example.get(0);

 

四、Lombok內容概覽

  • var 所聲明的變量是非 final 的。
  • val 所聲明的變量是 final 的。
  • @Getter 註解在屬性(類)上,爲屬性(所有非靜態成員變量)提供 get() 方法
  • @Setter 註解在屬性(類)上,爲屬性(所有非靜態成員變量)提供 set() 方法
  • @Accessors 注註解在屬性(類)上,配置getter和setter方法的生成結果,分別有三個屬性:fluent、chain、prefix
  • @ToString 該註解的作用是爲類自動生成 toString() 方法
  • @EqualsAndHashCode 爲對象字段自動生成 hashCode() 和 equals() 實現
  • @AllArgsConstructor、@RequiredArgsConstructor、@NoArgsConstructor 顧名思義,爲類自動生成對應參數的構造器
  • @Data 註解在類上,自動爲所有字段添加 @ToString、@EqualsAndHashCode、@Getter。爲非 final 字段添加 @Setter 和 @RequiredArgsConstructor。本質上相當於幾個註解的綜合效果
  • @Value 註解和 @Data 類似,區別在於它會把所有成員變量默認定義爲 private final 修飾,並且不會生成 set() 方法
  • @Log、@Log4j、@Log4j2、@Slf4j、@XSlf4j、@CommonsLog、@JBossLog 註解在類上,自動爲類添加對應的日誌支持
  • @NonNull 註解在方法參數上,用於自動生成空值參數檢查,自動幫助我們避免空指針
  • @Cleanup 自動幫我們調用 close() 方法,作用在局部變量上,在作用域結束時會自動調用 close() 方法釋放資源,可以關閉流
  • @Builder 註解在類上,被註解的類加個構造者模式
  • @Synchronized 註解在類上,加個同步鎖
  • @SneakyThrows 等同於 try/catch 捕獲異常
  • @UtilityClass 註解在類上,所有成員都會自動標記爲static。甚至字段和內部類。

 

更多閱讀

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章