從@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor開始瞭解Lombok外掛

山月風成發表於2018-04-02

接觸Lombok

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsContructor。是Lombok外掛三種生成不同構造方法的註解,來完成專案中不同構造方法的需求。

  • @NoArgsConstructor : 生成一個無引數的構造方法
  • @AllArgsContructor: ?會生成一個包含所有變數
  • @RequiredArgsConstructor: 會生成一個包含常量,和標識了NotNull的變數的構造方法。生成的構造方法是私有的private。
  • 主要使用前兩個註解,這樣就不需要自己寫構造方法,程式碼簡潔規範。

看Lombok註解的全貌

Lombok是一個通過註解形式幫助構造簡潔、規範的Java程式碼的工具,通過使用對應的註解,可以在編譯原始碼的時候生成對應的方法。
下載地址:
github地址:https://github.com/rzwitserloot/lombok
官方地址:https://projectlombok.org/
官方API : https://projectlombok.org/features/all

在IDEA中使用它的過程

  • 安裝
    這裡寫圖片描述

  • Maven專案引入lombok的jar

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.14</version>
</dependency>

常用註解介紹

  • @Getter and @Setter
    可以用@Getter / @Setter註釋欄位(也可以註釋到類上的—(在實體類中常用且推薦)),lombok會自動生成預設的Getter/Setter方法。

  • @ToString
    自動生成toString()方法,預設情況,按順序(以“,”分隔)列印你的類名稱以及每個欄位。也可以設定不包含哪些欄位/@ToString(exclude = {“id”,”name”})

import lombok.ToString;
@ToString(exclude = {"id","name"})
public class User {
  private Integer id;
  private String name;
  private String phone;
}
實際生成的toString()方法
public String toString(){
  return "User(phone=" + phone + ")";
}
  • @Synchronized
    給方法加上同步鎖,建議直接寫在程式碼中Synchronized

參考文章 連結:https://www.jianshu.com/p/365ea41b357 作者:緩慢移動的蝸牛 來源:簡書

相關文章