사용자 도구

사이트 도구


java:lombok:builder

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:lombok:builder [2022/01/28 17:28]
kwon37xi
java:lombok:builder [2022/01/28 17:29] (현재)
kwon37xi
줄 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> 
 + 
 + 
 +===== 참조 =====
   * [[https://www.baeldung.com/lombok-builder|Using Lombok's @Builder Annotation | Baeldung]]   * [[https://www.baeldung.com/lombok-builder|Using Lombok's @Builder Annotation | Baeldung]]
  
  
  
java/lombok/builder.1643358492.txt.gz · 마지막으로 수정됨: 2022/01/28 17:28 저자 kwon37xi