@RequiredArgsConstructor
는 Lombok 라이브러리에서 제공하는 어노테이션이다. Lombok은 Java에서 반복되는 코드를 줄이기 위한 도구로, 주로 getter, setter, 생성자 등을 자동으로 생성하는 데 사용된다.
자동 생성자 생성
@RequiredArgsConstructor
는 필드를 파라미터로 받는 생성자를 자동으로 생성한다.
final 또는 @NonNull
이 어노테이션은 클래스 내의 final
로 선언된 필드나 @NonNull
어노테이션이 붙은 필드에 대한 생성자만을 생성한다. 즉, 초기화가 필요한 필드들에 대한 생성자를 자동으로 만들어준다.
@NonNull: Lombok의 @NonNull
어노테이션을 사용하면 해당 필드에 대해 null 검사를 하는 생성자 코드가 생성된다. 만약 null 값이 전달되면, NullPointerException이 발생한다.
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public class SampleClass {
private final String mandatoryField;
@NonNull
private String name;
private int age;
}
위의 클래스에서 @RequiredArgsConstructor
를 사용했기 때문에, Lombok은 다음과 같은 생성자를 자동으로 생성해준다
public SampleClass(String mandatoryField, String name) {
if (name == null) {
throw new NullPointerException("name is marked non-null but is null");
}
this.mandatoryField = mandatoryField;
this.name = name;
}
주의할 점은, 모든 필드에 대한 생성자가 아닌, final
로 선언되거나 @NonNull
이 붙은 필드만을 파라미터로 하는 생성자가 생성된다는 것이다.
@RequiredArgsConstructor
를 사용하면 코드의 중복을 줄이고 명확하게 필요한 파라미터만을 가진 생성자를 생성할 수 있어 유용하게 사용될 수 있다.