原文連接
前言
lombok可以通過(guò)一個(gè)注解自動(dòng)實(shí)現(xiàn)Getter
Setter
等方法.平時(shí)我們可以通過(guò)Eclipse
或者IntelliJ IDEA
快捷鍵生成Getter
Setter
方法,當(dāng)我們需要加入一個(gè)新的屬性或者修改某屬性的變量名或者數(shù)據(jù)類型時(shí)燎潮,都需要手動(dòng)修改Getter
Setter
方法,這樣極為麻煩.有了lombok尝胆,使得代碼更加簡(jiǎn)潔巢块,同時(shí)節(jié)約編碼時(shí)間捺球。本文適用于IntelliJ IDEA
及Android Studio
。
添加依賴
我們可以直接下載jar
包夕冲,并添加到構(gòu)建路徑中氮兵,但是推薦你使用構(gòu)建工具
Maven依賴
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
Gradle依賴
compileOnly 'org.projectlombok:lombok:1.18.2'
如果你是用的是其他構(gòu)建工具,請(qǐng)參考
Usage
@Data
使用
我們可以直接在類名上使用該注解歹鱼,lombok
會(huì)自動(dòng)生成對(duì)應(yīng)的Getter
Setter
toString
等方法
@Data public class DataExample {
private final String name;
private int age;
private double score;
private String[] tags;
}
@Getter
和Setter
可以設(shè)置訪問(wèn)成員變量的權(quán)限
@Data public class DataExample {
@Getter(AccessLevel.NONE)
private final String name;
@Getter(AccessLevel.PROTECTED)
private int age;
@Setter(AccessLevel.MODULE)
private double score;
private String[] tags;
}
@ToString
import lombok.ToString;
@ToString
public class ToStringExample {
private static final int STATIC_VAR = 10;
private String name;
private Shape shape = new Square(5, 10);
private String[] tags;
@ToString.Exclude private int id;
public String getName() {
return this.name;
}
@ToString(callSuper=true, includeFieldNames=true)
public static class Square extends Shape {
private final int width, height;
public Square(int width, int height) {
this.width = width;
this.height = height;
}
}
}
更多注解的使用請(qǐng)參考官方文檔
安裝插件
雖然lombok已經(jīng)為你生成了繁瑣的Getter
Setter
方法泣栈,但是你在你的IDE中還是無(wú)法訪問(wèn)lombok編譯時(shí)自動(dòng)生成的方法,因?yàn)槲覀冃枰?code>IntelliJ IDEA 和Android Studio
中安裝lombok插件.
安裝方式
File
-> Settings
-> Plugins
-> Browse Repositories
點(diǎn)擊右側(cè)的Install按鈕安裝弥姻,安裝完成后需要重啟IDE
總結(jié)
Lombok
是一個(gè)很優(yōu)秀的開(kāi)源庫(kù)南片,通過(guò)該開(kāi)源庫(kù)你可以實(shí)現(xiàn)如Kotlin
一樣無(wú)需手寫Getter
和Setter
等方法,極為方便庭敦。