Programming/Java

롬복 @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor

helloworld: 2021. 9. 18. 03:50

@NoArgsConstructor

  • 매개변수가 없는 생성자를 만든다
  • 그런데 만약 (예를 들어 final 필드로 인해) 매개변수가 없는 생성자를 만드는 것이 불가한 경우에는 컴파일 에러 발생(@NoArgsConstructor(force = true)로 설정하여 final 필드들을 0 / false / null 로 초기화 하지 않는 한)
  • 주로 @Data 또는 다른 생성자 어노테이션들과 조합하여 유용하게 사용된다.
  • @NonNull과 같이 필드 제약조건이 있는 경우, 필드가 적절히 초기화 되지 않는 한 제약조건 로직이 실행되지 않는다.

 

@RequiredArgsConstructor

  • 초기화되지 않은 final 필드, 초기화되지 않은 @NonNull 필드에 대한 파라미터 생성자
  • 각각의 필드 당 하나의 매개변수를 받는 생성자를 만든다.
  • @NonNull 필드는 널 체크 실행된다. null 값이 들어오면 NullPointerException이 발생한다.
  • 생성자의 매개변수 순서는 클래스에 정의한 필드 순서와 일치한다.

 

@AllArgsConstructor

  • 클래스 내의 모든 필드들에 대해 각각 하나의 매개변수를 받는 생성자 생성
  • @NonNull 필드의 경우 해당 매개변수를 받으면 null 체크 시행

https://projectlombok.org/features/constructor

https://dingue.tistory.com/14