🏗 @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보다 상속 구조에서 유리하다.

연결문서

댓글남기기