1.1 簡介
1.1.1 概述
??Lombok 專案是一個 Java 庫,它會自動插入編輯器和構建工具中,Lombok 提供了一組有用的注釋,用來消除 Java 類中的大量樣板代碼,可以替換數百行代碼從而產生干凈,簡潔且易于維護的 Java 類,Lombok 也存在一定風險,在一些開發工具商店中沒有 Project Lombok 支持選擇, IDE 和 JDK 升級存在破裂的風險,并且圍繞專案的目標和實施存在爭議,
1.1.2 相關依賴
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
1.1.3 IDEA 使用 Lombok
??想要使用 Lombok 必須要使用支持 Lombok 的開發工具,此處以 IDEA 為例,IDEA 必須要安裝相關插件才能使用 Lombok,其他開發工具類似,

1.2 簡單實用
1.2.1 常用注解
| 注解 | 說明 |
|---|---|
| @Setter | 注解在類或欄位,注解在類時為所有欄位生成 setter 方法,注解在欄位上時只為該欄位生成 setter 方法 |
| @Getter | 使用方法同上,區別在于生成的是 getter 方法,需要注意的是 Boolean 生成的是 isXxx 不是 getXxx |
| @ToString | 注解在類,添加 toString 方法 |
| @EqualsAndHashCode | 注解在類,生成 hashCode 和 equals 方法 |
| @NoArgsConstructor | 注解在類,生成無參的構造方法 |
| @RequiredArgsConstructor | 注解在類,為類中需要特殊處理的欄位生成構造方法,比如 final 和被 @NonNull 注解的欄位 |
| @AllArgsConstructor | 注解在類,生成包含類中所有欄位的構造方法 |
| @Data【常用】 | 注解在類,生成 setter/getter、equals、canEqual、hashCode、toString 方法,如為 final 屬性,則不會為該屬性生成 setter 方法 |
| @Slf4j | 注解在類,生成 log 變數,嚴格意義來說是常量 |
1.2.2 示例
/**
* Created with IntelliJ IDEA.
*
* @author Demo_Null
* @date 2020/9/10
* @description Lombok 示例
*/
@Data
public class Student {
private Long id;
private String name;
private Integer age;
private Date birDate;
private String birStr;
}
1.2.4 自定義 setter/getter
/**
* Created with IntelliJ IDEA.
*
* @author Demo_Null
* @date 2020/9/10
* @description 自定義 setter/getter
*/
@Data
public class Student {
private Long id;
private String name;
private Integer age;
private Date birDate;
private String birStr;
/*
* 會使用此處的 setter/getter,lombok 不會再生成對應的方法
*/
public Date getBirDate() {
return birDate;
}
public void setBirDate(Date birDate) {
this.birDate = birDate;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
this.birStr = sdf.format(birDate);
}
public String getBirStr() {
return birStr;
}
public void setBirStr(String birStr) {
this.birStr = birStr;
}
}
/**
* Created with IntelliJ IDEA.
*
* @author Demo_Null
* @date 2020/9/10
* @description 測驗
*/
public class Demo {
public static void main(String[] args) {
Student student = new Student();
student.setBirDate(new Date());
student.setName("張三");
System.out.println(student);
}
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/22490.html
標籤:其他
上一篇:萬字圖解Java多執行緒
