iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
Mobile Development

Spring Boot & Android Studio教學系列 第 7

自動化繁瑣工作:使用Lombok簡化Java代碼

  • 分享至 

  • xImage
  •  

Lombok(簡化程式碼,減少模板)是一個針對Java程式語言的開源項目,旨在簡化Java代碼的撰寫,減少冗長和重複性的程式碼,同時提高程式碼的可讀性和可維護性。Lombok通過自動產生getter、setter、構造函數、equals和hashCode等常見的Java程式碼塊,幫助開發者減少手動編碼,從而節省寶貴的開發時間。


@NoArgsConstructor

自動生成無參數構造函數。

public User(){

}

@AllArgsConstructor

自動生成全參數構造函數。

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;
}

@RequiredArgsConstructor

生成一個包含 “特定參數” 的 constructor,特定參數指的是那些有加上 final 修飾詞的變量們

puvlic class User{
    private final Integer id;
    pricate String name;
    
    public User(Integer id){
        this.id = id
    }
}

@Data

自動為所有字段添加@ToString, @EqualsAndHashCode, @Getter方法,為非final字段添加@Setter,和@RequiredArgsConstructor

@Value

自動為所有字段添加@Getter (注意沒有setter),@ToString,@EqualsAndHashCode,@RequiredArgsConstructor但是他會把所有的變量都設成 final 的

@Value適合加在值不希望被改變的類上,像是某個類的值當創建後就不希望被更改,只希望我們讀它而已

@Builder

自動生成流式 set 值寫法,通常是 @Data 和 @Builder 會一起用在同個類上

@Builder
public class User{
    private Long id;
    private String name;
}

當我們的類有加上@Builder我們在set值的時候就可以這樣寫:

User user = User.buider()
    .id(1L)
    .name("hank")
    .build();

@Slf4j

自動生成該類的 log 靜態常量,要打日誌就可以直接打,不用再手動 new log 靜態常量

log.error("我的錯誤");

上一篇
在Spring Boot中去連結PostgreSQL資料庫
下一篇
是Java就必須來個Hello World:實現您的第一個HTTP請求
系列文
Spring Boot & Android Studio教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言