null
, 0
, false
가 기본이다.@Builder.Default
를 필드에 붙여 기본값을 지정할 수 있는데, 사용하지 않기를 권함. 이 경우는 class에 붙일때만 작동할 것으로 보임.setter
기반으로 builder가 만들어지는데 Java Collections와 Guava Collections 에 대해서 @Singluar
어노테이션을 주면 값을 한개씩 혹은 여러개를 추가하는 build method와 전체 clear 메소드를 만들어줌.@Singular("axis") List<Line> axes; // axis(Line line) 메소드가 생김
// 소스 제어권이 없는 클래스 @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);