IT could be
Lombok @NoArgsConstructor 와 @Builder 그리고 @AllArgsConstructor 본문
@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 |