繼上篇 在Spring Boot 使用Lombok - @Getter、@Setter、@Data

今天這篇文章主要來介紹其餘較為常用的annotation

分別是@RequiredArgsConstructor、@NoArgsConstructor、@AllArgsConstructor

這三個都是用來自動產生contructor,差別在於他們所帶的參數不一樣

 

@RequiredArgsConstructor

用來產生一個包含有加上 final 修飾詞的變數

如下圖所示,OrderService有三個final的變數,我們就需要產生一個contructor,否則就會編譯錯誤

1.png

而使用@RequiredArgsConstructor,就是產生如上圖的contructor,如下範例

我們僅需要再Class上面加上@RequiredArgsConstructor,就可以省略自己寫的contructor

2.png

 

@NoArgsConstructor 產生一個沒有參數的constructor --> public OrderService() {}

@AllArgsConstructor 產生一個包含所有參數的 constructor 

特別需要注意的是,Java 在沒有實作任何 constructor 時,Java會預設產生一個沒有參數的constructor

一旦我們有實作任何的constructor時,Java就不會幫我們預設產生沒有參數的constructor


由於很多地方,像是JPA等,需要都一定要有一個無參數的 constructor,

所以在加上 @AllArgsConstructor 時,一定要補上 @NoArgsConstrcutor 才不會出問題

如下圖所示

3.png

arrow
arrow

    Mark Zhang 發表在 痞客邦 留言(0) 人氣()