繼上篇 在Spring Boot 使用Lombok - @Getter、@Setter、@Data
今天這篇文章主要來介紹其餘較為常用的annotation
分別是@RequiredArgsConstructor、@NoArgsConstructor、@AllArgsConstructor
這三個都是用來自動產生contructor,差別在於他們所帶的參數不一樣
@RequiredArgsConstructor
用來產生一個包含有加上 final 修飾詞的變數
如下圖所示,OrderService有三個final的變數,我們就需要產生一個contructor,否則就會編譯錯誤
而使用@RequiredArgsConstructor,就是產生如上圖的contructor,如下範例
我們僅需要再Class上面加上@RequiredArgsConstructor,就可以省略自己寫的contructor
@NoArgsConstructor 產生一個沒有參數的constructor --> public OrderService() {}
@AllArgsConstructor 產生一個包含所有參數的 constructor
特別需要注意的是,Java 在沒有實作任何 constructor 時,Java會預設產生一個沒有參數的constructor
一旦我們有實作任何的constructor時,Java就不會幫我們預設產生沒有參數的constructor
由於很多地方,像是JPA等,需要都一定要有一個無參數的 constructor,
所以在加上 @AllArgsConstructor 時,一定要補上 @NoArgsConstrcutor 才不會出問題
如下圖所示
留言列表