Lombok - 工具簡介:
Lombok是一個編譯時註釋前處理器,有助於在編譯時注入一些程式碼。Lombok提供了一組在開發時處理的註釋,以將程式碼注入到Java應用程式中,注入的程式碼在開發環境中立即可用。在詳細介紹之前,可以去其官網看一下作者提供的視訊,視訊中闡述了Lombok 的簡單用法。https://projectlombok.org/
Lombok - 安裝過程:
基於 Maven:
示例程式碼:
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
</dependencies>
新增好 Maven 依賴之後,就可以在程式碼中使用 Lombok 的註解來簡化程式碼了。
基於IntelliJ IDEA:
安裝 Lombok IntelliJ plugin:
Jetbrains IntelliJ IDEA Editor
完全相容 Lombok,要在 IDEA 中使用 Lombok,那就需要在IntelliJ IDEA 中安裝 Lombok IntelliJ plugin
外掛,以下為安裝步驟:
-
Go to
File > Settings > Plugins
-
Click on
Browse repositories...
-
Search for
Lombok Plugin
-
Click on
Install plugin
-
Restart IntelliJ IDEA
具體安裝過程可參考官網或者外掛 Github 主頁。
在IntelliJ IDEA使用Lombok:
- Go to Refactor > Lombok
- 在開啟的 JavaBean 檔案中按照需求新增相應的註解即可。
Lombok - 常用註解:
你如果是使用IDEA的話,在當前檔案上按command+F12
,或者長按command
在左側找到Structure
,就能夠看到 lombok 為當前類生成的方法。
-
@Data :註解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法
示例程式碼:
import lombok.Data; @Data public class Person { private String firstName; private String lastName; private String job; }
-
@Setter/@Getter:註解在屬性或類上;為屬性提供 Setter/Getter 方法
示例程式碼:
import lombok.Getter; import lombok.Setter; // 只為 firstName 生成Getter、Setter 方法 public class Person { @Getter @Setter private String firstName; private String lastName; private String job; }
import lombok.Getter; import lombok.Setter; @Getter @Setter public class Person { // 為所有欄位生成Getter、Setter 方法 private String firstName; private String lastName; private String job; }
-
@Log4j :註解在類上;為類提供一個 屬性名為log 的 log4j 日誌物件
-
@Value:此註解集@equals()、@hashCode()、@toString()、@Getter()於一身。
示例程式碼:
import lombok.Value; import lombok.experimental.NonFinal; @Value public class Person { /** 類本身以及類中所有的欄位都是private final型別的,不會生成Setter方法。 * 可以通過顯式指定某個註解覆蓋掉預設的屬性。 * 通過@NonFinal註解修飾的欄位,不是final型別的。 */ String firstName; String lastName; @NonFinal String job; }
-
@NoArgsConstructor/@AllArgsConstructor: 自動生成無引數建構函式/全參建構函式。
示例程式碼:
import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor public class Person { private String firstName; private String lastName; private String job; }
-
@NonNull :修飾方法、建構函式的引數或者類欄位,Lombok自動生成一個非空檢測語句。
示例程式碼:
import lombok.NonNull; public class Person{ public String Example(@NonNull String sum){ return null; } }
-
@Synchronized 將方法變成同步方法
-
@SneakyThrows:將受檢異常轉換為非受檢異常,避免丟擲或嘗試語句。
lombok 專案官網上還有一些其他註解的用法,此處就不列舉了,附連結:https://projectlombok.org/features/all