Lombok(簡化程式碼,減少模板)是一個針對Java程式語言的開源項目,旨在簡化Java代碼的撰寫,減少冗長和重複性的程式碼,同時提高程式碼的可讀性和可維護性。Lombok通過自動產生getter、setter、構造函數、equals和hashCode等常見的Java程式碼塊,幫助開發者減少手動編碼,從而節省寶貴的開發時間。
自動生成無參數構造函數。
public User(){
}
自動生成全參數構造函數。
public User(String name, String phone){
this.name = name;
this.phone = phone
}
然而很多地方(像是 Spring Data JPA),會需要每個類都一定要有一個無參數的 constructor,所以你在加上 @AllArgsConstructor 時,拜託,一定要補上 @NoArgsConstrcutor,不然會有各種坑等著你
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String name;
}
生成一個包含 “特定參數” 的 constructor,特定參數指的是那些有加上 final 修飾詞的變量們
puvlic class User{
private final Integer id;
pricate String name;
public User(Integer id){
this.id = id
}
}
自動為所有字段添加@ToString, @EqualsAndHashCode, @Getter方法,為非final字段添加@Setter,和@RequiredArgsConstructor
自動為所有字段添加@Getter (注意沒有setter),@ToString,@EqualsAndHashCode,@RequiredArgsConstructor但是他會把所有的變量都設成 final 的
@Value適合加在值不希望被改變的類上,像是某個類的值當創建後就不希望被更改,只希望我們讀它而已
自動生成流式 set 值寫法,通常是 @Data 和 @Builder 會一起用在同個類上
@Builder
public class User{
private Long id;
private String name;
}
當我們的類有加上@Builder我們在set值的時候就可以這樣寫:
User user = User.buider()
.id(1L)
.name("hank")
.build();
自動生成該類的 log 靜態常量,要打日誌就可以直接打,不用再手動 new log 靜態常量
log.error("我的錯誤");