java效率工具 Lombok

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

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

IDEA安裝插件

1. 打開 IDEA 的 Settings 面板

1. 選擇 Plugins 選項,然後點擊 "Browse repositories"

1. 在輸入框輸入"lombok",得到搜索結果,點擊安裝,然後安裝提示重啟 IDEA,安裝成功

java效率工具 Lombok

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

項目中引入依賴

在自己的項目裡添加 lombok 的編譯支持,在 pom 文件裡面添加以下代碼

org.projectlombok lombok 1.16.18 provided

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

java效率工具 Lombok

@Setter

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

java效率工具 Lombok

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

@Data

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

java效率工具 Lombok

@Log4j

註解在[類]上:為類提供一個 屬性名為 log 的 log4j 日誌對象,提供默認構造方法。

java效率工具 Lombok

@Cleanup

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

java效率工具 Lombok

@SneakyThrows

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

java效率工具 Lombok

@Synchronized

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

區別:鎖對象不同 對於類方法:

· synchronized 關鍵字鎖對象為:類的 class 對象

· @Synchronized鎖對象為:私有靜態 final 對象 lock

對於實例方法:

· synchronized 關鍵字鎖對象為: this 對象

· @Synchronized鎖對象為:私有 final 對象 lock

java效率工具 Lombok

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

堅持日更:40天

java效率工具 Lombok

THANDKS

· End -

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

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


分享到:


相關文章: