@AllArgsConstructor & @RequiredArgsConstructor

쓰옹·2023년 1월 26일
0

테스트 코드 강의를 들으면서 기존 블로그 프로젝트를 사용해서 테스트코드 작성을 해보는데 강의에서 자료로 쓰인 다른 조의 프로젝트에는 given으로 주어지는 Dto에 @Builder와 @AllArgsConstructor가 있었고 내가 참여한 프로젝트에는 @NoArgsConstructor가 있었다. 그래서 @AllArgsConstructor를 새로 붙여주면서 @RequiredArgsConstructor와의 차이가 궁금해졌다.

@AllArgsConstructor@RequiredArgsConstructor
정의Generates an all-args constructor. An all-args constructor requires one argument for every field in the class.Generates a constructor with required arguments. Required arguments are final fields and fields with constraints such as {@code @NonNull}.
모든 필드에 대한 생성자 생성초기화 되지 않은 final 필드와 @NonNull 어노테이션이 붙은 필드에 대한 생성자 생성
생성자 Parameter의 순서클래스 내부에서 선언된 field 순서클래스 내부에서 선언된 field 순서

+@Builder 애너테이션은 클래스에 작성한 모든 field를 포함하는 생성자가 있어야 한다.
Builder를 사용하면 파라미터의 이름으로 값을 주기 때문에 생성자에 값을 입력할 때 순서가 헷갈려 값을 잘못 넣는 일은 없다. 그리고 원하는 필드에만 값을 넣어줄 수 있기 때문에 생성자에 매개변수가 많을 경우 사용하기 좋다.

profile
기록하자기록해!

0개의 댓글