原文地址:Lombok 簡單入門
博客地址:http://www.extlight.com
一、前言
Lombok 是一個 Java 庫,它作為插件安裝至編輯器中,其作用是通過簡單注解來精簡代碼,以此達到消除冗長代碼的目的。
二、簡單介紹
2.1 優點
-
通過注解自動生成成員變量的 getter、setter 等方法,使代碼簡潔
-
修改類變量名時,無需關注其 getter、setter 等方法
2.2 缺點
降低源碼文件的可讀性。
2.3 原理
從 Java 6 開始,javac 就支持 JSR 269 API 規范,而 Lombok 實現 JSR 269 Pluggable Annation Processing API 規范。
當我們編寫代碼並保存后,編輯器會自動編譯源碼文件,在這個過程中,源碼先被轉化為 AST。
然后,Lombok 插件解析 AST 是否存在 Lombok 的注解。如果存在則修改 AST ,使其生成注解對應的代碼。
最終將修改的 AST 解析並生成字節碼文件。
三、安裝插件
為編輯器安裝 Lombok 插件。
3.1 IDEA 安裝
在 IDEA 界面點擊 “File”->"Settings" 彈出設置框,選擇左側 “Plugins”,通過 “Browse repositories” 搜索 lombok 關鍵字安裝即可。
3.2 Eclipse 安裝
點擊 Lombok.jar,下載該 jar 包。
雙擊 jar 包會彈出一個安裝界面,點擊界面的“Specify location...” 安裝選擇 Eclipse 的安裝路徑(精確到 eclipse.exe)。
四、使用
使用 Lombok 的方法非常簡單,就是在類上或者成員變量上添加注解即可。
為了能使用注解,我們還需要在項目中引入 lombok 的 jar 包。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>0.9.2</version>
</dependency>
4.1 注解介紹
Lombok 常用的注解如下:
注解名 | 作用描述 |
---|---|
@Getter | 作用在類上或成員變量上,生成對應的 getter 方法 |
@Setter | 作用在類上或成員變量上,生成對應的 setter 方法 |
@NoArgsConstructor | 作用在類上,生成對應的無參構造方法 |
@AllArgsConstructor | 作用在類上,生成對應的有參構造方法 |
@ToString | 作用在類上,生成對應的 toString 方法 |
@EqualsAndHashCode | 作用在類上,生成對應的 equals 和 hashCode 方法 |
@Data | 作用在類上,效果等同於上述 5 個注解,排除 @AllArgsConstructor 功能 |
@Log4j/@Slf4j | 作用在類上,生成對應的 Logger 對象,變量名為 log |
4.2 案例演示
本次測試使用 Ecplise 編輯器。
@Data
public class User {
private int id;
private String name;
private String password;
private Date birthday;
}
當添加注解保存文件后,Ecplise 編輯器的 Outline 視圖結果如下:
我們還可以使用 jd-gui 等反編譯工具查看源碼,結果如下: