java效率工具 Lombok

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

Lombok是以註解的方式減小了代碼量,雖然說 IDEA 的插件能夠自動生成 get/set/toString 方法,可是使用 Lombok 可讓代碼更簡潔。java

IDEA安裝插件

  1. 打開 IDEA 的 Settings 面板
  2. 選擇 Plugins 選項,而後點擊 「Browse repositories」
  3. 在輸入框輸入」lombok」,獲得搜索結果,點擊安裝,而後安裝提示重啓 IDEA,安裝成功

image

Eclipse的Lombok插件安裝可自行谷歌百度程序員

項目中引入依賴

在本身的項目裏添加 lombok 的編譯支持,在 pom 文件裏面添加如下代碼ide

<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 方法;
都提供默認構造方法。ui

image

@Setter

註解在[屬性]上:爲單個屬性提供 set 方法; 
註解在[類]上,爲該類全部的屬性提供 set 方法;
都提供默認構造方法。this

image

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

@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 -

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

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

掃描二維碼,關注公衆號

相關文章
相關標籤/搜索