JPA
@NoArgsConstructor
지민재
2023. 11. 21. 15:11
@NoArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)는 Lombok 프로젝트에서 제공하는 애노테이션 중 하나로, 주로 클래스에 붙여서 기본 생성자를 생성하는 역할을 합니다. 이 애노테이션은 기본 생성자를 생성하되, 접근 제어자를 protected로 설정하는 기능을 수행합니다.
여기서 각 구성 요소에 대한 설명은 다음과 같습니다:
- @NoArgsConstructor: Lombok이 해당 클래스에 대해 자동으로 생성자를 만들도록 지시하는 애노테이션입니다.
- access = AccessLevel.PROTECTED: 생성된 기본 생성자의 접근 제어자를 protected로 지정합니다. 즉, 이 생성자는 같은 패키지 내에서 혹은 해당 클래스를 상속받은 하위 클래스에서만 호출 가능합니다.
이렇게 하면 클래스 외부에서는 기본 생성자를 직접 호출할 수 없고, 패키지 내부 혹은 하위 클래스에서만 호출할 수 있게 됩니다. 이는 클래스의 인스턴스 생성을 어느 정도 제한하고, 보다 안전한 객체 생성을 유도하는 데 사용될 수 있습니다.
import lombok.NoArgsConstructor;
import lombok.AccessLevel;
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class MyClass {
// 클래스의 나머지 부분
}
이렇게 하면 MyClass는 외부에서는 기본 생성자를 호출할 수 없지만, 패키지 내부에서는 사용 가능하며 하위 클래스에서도 사용할 수 있습니다.