Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

IT could be

Lombok @NoArgsConstructor 와 @Builder 그리고 @AllArgsConstructor 본문

개발공부 εїз

Lombok @NoArgsConstructor 와 @Builder 그리고 @AllArgsConstructor

얘진 2022. 12. 23. 14:37

@NoArgsConstructor 와 @Builder를 사용하려면 @AllArgsConstructor가 필요하다

 

@AllArgsConstructor 를 사용하면

객체를 만들기 위해 필드의 순서대로 파라미터에 값를 넣어주어서 멤버 변수에 값이 모두 들어간 객체를 만들 수 있다

객체 생성할 때 , 파라미터 하나의 값이 빠지면 객체 생성을 할 수 없고, 필드 순서가 달라지면 선언한 값과 들어가는 값의 형태가 일치하지 않아 오류가 날 수 있음

 

@NoArgsConstructor  는 기본 생성자를 만들어 주는데, 객체를 생성하고 setter로 값을 넣어준다

 

@Builder는 Builder().build() 로 필드 순서 상관없이 필드의 이름으로 객체에 값을 넣어 생성할 수 있다 

 

 

@NoArgsConstructor 로 기본 생성자를 통해 객체를 만들어주고 @Builder 로 원하는 값을 넣어주고 싶을 때 위의 어노테이션을 동시에 사용할 생각을 하게 되는데, 이때 에러가 발생한다. 

 

전체 멤버 변수를 파라미터로 받는 생성자가 없기 때문이다 ! 

@Builder는 생성자가 없을 경우에 모든 멤버 변수를 파라미터로 받는 기본 생성자를 생성하는데

생성자가 있을 경우 생성자를 만들지 않기 때문이다 !!

 

그래서 @NoArgsConstructor 와 @Builder를 함께 사용하면 전체 멤버변수를 받는 생성자가 없게 된다 !! 

 

@NoArgsConstructor 와 @Builder를 함께 사용하기 위해서는 @AllArgsConstructor 도 추가해주면 된다 

@NoArgsConstructor
@AllArgsConstructor
@Builder

 

'개발공부 εїз' 카테고리의 다른 글

Convention  (0) 2022.12.28
Swagger Authorize 버튼으로 JWT token test 하기  (0) 2022.12.22
Linux 시간 한국 표준시(KST) 변경하기  (0) 2022.12.13
Linux crontab  (0) 2022.12.13
Docker 명령어  (0) 2022.12.12
Comments