@SuperBuilder
🏗 @SuperBuilder
정의
@SuperBuilder는 상속 관계에서 부모 클래스의 필드까지 포함하는 빌더 패턴을 생성하는 Lombok 애너테이션이다.
상속된 필드까지 함께 builder로 만들고 싶을 때 사용한다.
🧩 역할
- 부모 클래스의 필드를 포함한 builder를 생성한다.
- 상속 구조에서 객체 생성을 간결하게 만든다.
@Builder보다 상속에 더 적합하다.
🛠 사용법
부모 클래스
import lombok.Getter;
import lombok.experimental.SuperBuilder;
@Getter
@SuperBuilder
public class Parent {
private String parentField;
}
자식 클래스
@Getter
@SuperBuilder
public class Child extends Parent {
private String childField;
}
객체 생성
Child child = Child.builder()
.parentField("부모 필드 값")
.childField("자식 필드 값")
.build();
⚠️ 주의사항
- 부모 클래스와 자식 클래스에 모두
@SuperBuilder를 적용해야 한다. @Builder와 함께 사용할 수 없다.- Lombok에 의존하는 기능이므로 프로젝트 설정을 함께 확인해야 한다.
📌 장점과 단점
장점
- 상속 구조에서 부모 필드까지 포함한 builder 사용 가능
- 객체 생성 코드를 간결하게 유지할 수 있다
단점
@Builder와 함께 사용할 수 없다- Lombok 설정에 의존한다
📌 정리
@SuperBuilder는 상속 관계에 적합한 Lombok 빌더 애너테이션이다.- 부모와 자식 클래스에 모두 적용해야 한다.
- 일반
@Builder보다 상속 구조에서 유리하다.
댓글남기기