在項目中添加Lombok可以極大的減少重復代碼的書寫,比如get/set方法的編寫
首先需要將Lombok添加進pom文件中
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
</dependencies>
Lombok使用還需要添加插件
在idea 的 File / Settings / Plugins里搜索Lombok安裝即可
下面是不使用Lombok,正常的編寫get/set/toString方法
public class User {
private String username;
private Integer id;
private Integer age;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", id=" + id +
", age=" + age +
'}';
}
}
下面是使用了Lombok @Data 注解之后的代碼
import lombok.Data;
@Data
public class User {
private String username;
private Integer id;
private Integer age;
}
代碼就變得非常簡潔了
常用的幾個注解:
@Data 注解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法
@Setter :注解在屬性上;為屬性提供 setting 方法
@Getter :注解在屬性上;為屬性提供 getting 方法
@Log4j :注解在類上;為類提供一個 屬性名為log 的 log4j 日志對象
@Cleanup : 可以關閉流
@Builder : 被注解的類加個構造者模式
@Synchronized : 加個同步鎖
@SneakyThrows : 等同于try/catch 捕獲異常
@NonNull : 如果給參數(shù)加個這個注解 參數(shù)為null會拋出空指針異常
@Value : 注解和@Data類似,區(qū)別在于它會把所有成員變量默認定義為private final修飾,并且不會生成set方法。