Lombok 看這篇就夠了

前提

自從進公司實習後,項目代碼中能用 Lombok 的都用了,畢竟這麼好的輪子要充分利用好。也能夠減小一些 get/set/toString 方法的編寫,雖然說 IDEA 的插件能夠自動生成 get/set/toString 方法,可是使用 Lombok 可讓代碼更簡潔。ide

下面看看如何在 IDEA 中如何安裝 Lombok:ui

1. 安裝

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

2. 引入依賴

在本身的項目裏添加 lombok 的編譯支持,在 pom 文件裏面添加 dependency.net

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

3. 怎麼使用?

在實體類上引入相關的註解就行:插件


有哪些註解?
  • @Data
  • @Setter
  • @Getter
  • @Log4j
  • @AllArgsConstructor
  • @NoArgsConstructor
  • @EqualsAndHashCode
  • @NonNull
  • @Cleanup
  • @ToString
  • @RequiredArgsConstructor
  • @Value
  • @SneakyThrows
  • @Synchronized

註解詳解

@Data指針

註解在  上;提供類全部屬性的 get 和 set 方法,此外還提供了 equals、canEqual、hashCode、toString 方法。日誌


@Settercode

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


@Getter對象

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


@Log4j

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


@AllArgsConstructor

註解在  上;爲類提供一個全參的構造方法,加了這個註解後,類中不提供默認構造方法了。


@NoArgsConstructor

註解在  上;爲類提供一個無參的構造方法。


@EqualsAndHashCode

註解在  上, 能夠生成 equals、canEqual、hashCode 方法。


@NonNull

註解在 屬性 上,會自動產生一個關於此參數的非空檢查,若是參數爲空,則拋出一個空指針異常,也會有一個默認的無參構造方法。


@Cleanup

這個註解用在 變量 前面,能夠保證此變量表明的資源會被自動關閉,默認是調用資源的 close() 方法,若是該資源有其它關閉方法,可以使用 @Cleanup(「methodName」) 來指定要調用的方法,也會生成默認的構造方法。


@ToString

這個註解用在  上,能夠生成全部參數的 toString 方法,還會生成默認的構造方法。


@RequiredArgsConstructor

這個註解用在  上,使用類中全部帶有 @NonNull 註解的或者帶有 final 修飾的成員變量生成對應的構造方法。


@Value

這個註解用在  上,會生成含全部參數的構造方法,get 方法,此外還提供了equals、hashCode、toString 方法。


@SneakyThrows

這個註解用在 方法 上,能夠將方法中的代碼用 try-catch 語句包裹起來,捕獲異常並在 catch 中用 Lombok.sneakyThrow(e) 把異常拋出,可使用 @SneakyThrows(Exception.class) 的形式指定拋出哪一種異常,也會生成默認的構造方法。


@Synchronized

這個註解用在 類方法 或者 實例方法 上,效果和 synchronized 關鍵字相同,區別在於鎖對象不一樣,對於類方法和實例方法,synchronized 關鍵字的鎖對象分別是類的 class 對象和 this 對象,而 @Synchronized 的鎖對象分別是 私有靜態 final 對象 lock私有 final 對象 lock,固然,也能夠本身指定鎖對象,此外也提供默認的構造方法。


總結

以上註解可根據須要一塊兒搭配使用!

雖然說輪子好,可是咱們不只要知其然,也要知其因此然!

做者:zhisheng
連接: Lombok 看這篇就夠了 聲明:本文來源於極樂科技簽約博主:zhisheng,版權歸做者全部,轉載請註明做者與出處,謝謝!

相關文章
相關標籤/搜索