목차

lombok @Builder

주의점

기본값

@Singluar

@Singular("axis") List<Line> axes;
 
// axis(Line line) 메소드가 생김

final 혹은 수정 불가 클래스에 대한 builder

// 소스 제어권이 없는 클래스
@Value
final class ImmutableClient {
    private int id;
    private String name;
}
 
// 별도의 빌드 전용 클래스와 메소드
class ClientBuilder {
 
    @Builder(builderMethodName = "builder")
    public static ImmutableClient newClient(int id, String name) {
        return new ImmutableClient(id, name);
    }
}
 
ImmutableClient testImmutableClient = ClientBuilder.builder()
  .name("foo")
  .id(1)
  .build();
assertThat(testImmutableClient.getName())
  .isEqualTo("foo");
assertThat(testImmutableClient.getId())
  .isEqualTo(1);

참조