IntelliJ IDEA 使用 lombok 減少冗長代碼

對于 POJO, 我們需要為其中的每個字段生成 getter,setter 方法, 雖然能夠使用 IDE 快速為我們生成. 但如果需要修改字段名稱及字段類型, 那么就需要刪除在重新進行生成, 終究還是有一些不方便. 如果使用 lombok, 可以通過一些簡單的注解直接生成我們所需要的代碼, 能極大的提高開發體驗.

  1. 安裝插件


    IDEA 安裝 lombok.png
  2. 啟用插件


    啟用插件. png
  3. 在項目中使用

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.14</version>
        <scope>provided</scope>
    </dependency>
    
  4. lombok 常用注解介紹

    1. @NonNull

      使用 @NonNull 注解修飾的字段 通過 set 方法設置時如果為 null, 將拋出 NullPointerException

    2. @Cleanup

      主要用來修飾 IO 流相關類, 會在 finally 代碼塊中對該資源進行 close();

    3. @Getter,@Setter

      為字段生成 getter,setter 方法, 標記到類上表明為所有字段生成

    4. @ToString

      生成 toString 方法, 默認打印所有非靜態字段

    5. @EqualsAndHashCode

      生成 equals 和 hashCode 方法

    6. @NoArgsConstructor,@RequiredArgsConstructor,@AllArgsConstructor

      NoArgsConstructor 無參構造函數
      RequiredArgsConstructor 為未初始化的 final 字段和使用 @NonNull 標注的字段生成構造函數
      AllArgsConstructor 為所有字段生成構造函數
      7. @Data
      > 相當于同時使用 @Getter,@Setter,@ToString,@EqualsAndHashCode,@RequiredArgsConstructor
      8. @Value
      > 使用后, 類將使用 final 進行修飾, 同時使用 @ToString,@EqualsAndHashCode,@AllArgsConstructor,@Getter

    7. @Builder

      創建一個靜態內部類, 使用該類可以使用鏈式調用創建對象
      如 User 對象中存在 name,age 字段, User user=User.builder().name("姓名").age(20).build()
      10. @SneakyThrows
      > 對標注的方法進行 try catch 后拋出異常, 可在 value 輸入需要 catch 的異常數組, 默認 catch Throwable

    8. @Synchronized

      在標注的方法內 使用 synchronized($lock) {} 對代碼進行包裹 ,$lock 為 new Object[0]
      12. @Log,@CommonsLog,@JBossLog,@Log,@Log4j,@Log4j2,@Slf4j,@XSlf4j
      > 生成一個當前類的日志對象, 可以使用 topic 指定要獲取的日志名稱

  5. 自定義配置

    雖然 lombok 能為我們快速生成代碼, 但是有一些生成的代碼依然無法滿足我們的需求. 此時可配置 lombok.config 來解決問題

    以下列出一些常用的配置

    lombok.getter.noIsPrefix=true(默認: false)  #lombok 默認對 boolean 類型字段生成的 get 方法使用 is 前綴, 通過此配置則使用 get 前綴
    lombok.accessors.chain=true(默認: false) #默認的 set 方法返回 void 設置為 true 返回調用對象本身
    lombok.accessors.fluent=true(默認: false) #如果設置為 true. get,set 方法將不帶 get,set 前綴, 直接以字段名為方法名
    lombok.log.fieldName=logger(默認: log) #設置 log 類注解返回的字段名稱
    

    ** 注 **: 在 IDEA 中,lombok.config 文件 請放置于 src\main\java 目錄下, 在 src\main\resources 中將不生效

  6. 參考資料

    1. lombok 官網
    2. IDEA lombok 插件
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容