1. 程式人生 > >java效率工具 Lombok

java效率工具 Lombok

Java專案中,充斥著太多不友好的程式碼:POJO的getter/setter/toStringm異常處理,I/O流的關閉操作等等,這些樣板程式碼既沒有技術含量,又影響著程式碼的美觀,Lombok應運而生。

Lombok是以註解的方式減少了程式碼量,雖說 IDEA 的外掛可以自動生成 get/set/toString 方法,但是使用 Lombok 可以讓程式碼更簡潔。

IDEA安裝外掛

  1. 開啟 IDEA 的 Settings 面板

  2. 選擇 Plugins 選項,然後點選 “Browse repositories”

  3. 在輸入框輸入”lombok”,得到搜尋結果,點選安裝,然後安裝提示重啟 IDEA,安裝成功

image

Eclipse的Lombok外掛安裝可自行谷歌百度

專案中引入依賴

在自己的專案裡新增 lombok 的編譯支援,在 pom 檔案裡面新增以下程式碼

<dependency>    <groupId>org.projectlombok</groupId>    <artifactId>lombok</artifactId>    <version>1.16.18</version>    <scope>provided</scope></dependency>

scope=provided,說明它只在編譯階段生效,不需要打入包中。事實正是如此,Lombok在編譯期將帶Lombok註解的Java檔案正確編譯為完整的Class檔案。

怎麼用

主要註解
  • @Getter 生成成員變數的getter方法

  • @Setter 生成成員變數的getter方法

  • @NoArgsConstructor 生成無參構造器

  • @RequiredArgsConstructor 生成包含final和@NonNull註解的成員變數的構造器

  • @EqualsAndHashCode 生成覆蓋預設的equals和hashCode

  • @ToString 生成覆蓋預設的toString()方法

  • @Data 以上註解的集合:@ToString @EqualsAndHashCode @Getter @Setter @NoArgsConstructor

  • @Log4j 生成log4j日誌變數

  • @AllArgsConstructor 生成全參構造器

  • @NonNull 作用於成員變數和引數中,標識不能為空,否則丟擲空指標異常

  • @Cleanup 自動關閉資源

  • @SneakyThrows 檢異常進行捕捉並丟擲

  • @Synchronized 替換synchronize關鍵字或lock鎖

重要註解詳解
@Getter

註解在[屬性]上:為單個屬性提供 get 方法; 
註解在[類]上,為該類所有的屬性提供 get 方法;
都提供預設構造方法。

image

@Setter

註解在[屬性]上:為單個屬性提供 set 方法; 
註解在[類]上,為該類所有的屬性提供 set 方法;
都提供預設構造方法。

image

@NoArgsConstructor @EqualsAndHashCode @ToString 使用與上類似,不累贅說明

@Data

註解在[類]上:提供類所有屬性的 get 和 set 方法,此外還提供了equals、canEqual、hashCode、toString 方法。看Structrue圖可看出

image

@Log4j

註解在[類]上:為類提供一個 屬性名為 log 的 log4j 日誌物件,提供預設構造方法。

image

@Cleanup

註解用在[變數]上:保證此變數代表的資源會被自動關閉,針對實現了java.io.Closeable介面的物件有效,如:典型的IO流物件

image

@SneakyThrows

註解在[方法]上,可以對受檢異常進行捕捉並丟擲@SneakyThrows(Exception.class) 的形式指定丟擲哪種異常

image

@Synchronized

註解在[類方法]或者[例項方法]上,效果和 synchronized 關鍵字相同

區別:鎖物件不同
對於類方法:

  • synchronized 關鍵字鎖物件為:類的 class 物件

  • @Synchronized鎖物件為:私有靜態 final 物件 lock

對於例項方法:

  • synchronized 關鍵字鎖物件為: this 物件

  • @Synchronized鎖物件為:私有 final 物件 lock

image

怎樣?看起來不錯吧!趕緊用起來!

堅持日更:40天

推薦閱讀:

「 神器 」資源管理神器Clover,風一樣的效率

致低頭族

「 趣圖 」程式設計師極度崩潰的 10 個瞬間

閱讀原文檢視更多精彩內容

您的點贊、轉發是對我最大的支援!

image

image

THANDKS

  • End -

一個立志成大腿而每天努力奮鬥的年輕人

伴學習伴成長,成長之路你並不孤單!

掃描二維碼,關注公眾號