사용자 도구

사이트 도구


java:lombok:builder

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
마지막 판 양쪽 다음 판
java:lombok:builder [2022/01/28 17:28]
kwon37xi
java:lombok:builder [2022/01/28 17:29]
kwon37xi [final 혹은 수정 불가 클래스에 대한 builder]
줄 19: 줄 19:
 </code> </code>
 ===== final 혹은 수정 불가 클래스에 대한 builder ===== ===== 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>
  
  
java/lombok/builder.txt · 마지막으로 수정됨: 2022/01/28 17:29 저자 kwon37xi