내용으로 건너뛰기
권남
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
java:lombok:builder
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== lombok @Builder ====== * [[https://projectlombok.org/features/Builder|@Builder]] ===== 주의점 ===== * see [[java:lombok:pitfall|Lombok 사용상 주의점(Pitfall)]] * 클래스에 붙이지 말고, 항상 명시적 생성자나 메소드에 붙여야 한다. ===== 기본값 ===== * 지정하지 않으면 ''null'', ''0'', ''false'' 가 기본이다. * ''@Builder.Default'' 를 필드에 붙여 기본값을 지정할 수 있는데, 사용하지 않기를 권함. 이 경우는 class에 붙일때만 작동할 것으로 보임. * 생성자나 메소드에서 명시적으로 기본값을 지정할 것. ===== @Singluar ===== * 원칙적으로 ''setter'' 기반으로 builder가 만들어지는데 Java Collections와 [[java:guava|Guava]] Collections 에 대해서 ''@Singluar'' 어노테이션을 주면 값을 한개씩 혹은 여러개를 추가하는 build method와 전체 clear 메소드를 만들어줌. <code java> @Singular("axis") List<Line> axes; // axis(Line line) 메소드가 생김 </code> ===== final 혹은 수정 불가 클래스에 대한 builder ===== * 수정할 수 없는 클래스가 있을 때 이에 대한 builder 를 별도 클래스에서 메소드로 빼서 만들 수 있다. <code java> // 소스 제어권이 없는 클래스 @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); </code> ===== 참조 ===== * [[https://www.baeldung.com/lombok-builder|Using Lombok's @Builder Annotation | Baeldung]]
java/lombok/builder.txt
· 마지막으로 수정됨: 2022/01/28 17:29 저자
kwon37xi
문서 도구
문서 보기
이전 판
역링크
맨 위로