문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
java:lombok:builder [2022/01/28 17:28] kwon37xi |
java:lombok:builder [2022/01/28 17:29] (현재) kwon37xi |
||
---|---|---|---|
줄 19: | 줄 19: | ||
</ | </ | ||
===== final 혹은 수정 불가 클래스에 대한 builder ===== | ===== final 혹은 수정 불가 클래스에 대한 builder ===== | ||
+ | * 수정할 수 없는 클래스가 있을 때 이에 대한 builder 를 별도 클래스에서 메소드로 빼서 만들 수 있다. | ||
+ | <code java> | ||
+ | // 소스 제어권이 없는 클래스 | ||
+ | @Value | ||
+ | final class ImmutableClient { | ||
+ | private int id; | ||
+ | private String name; | ||
+ | } | ||
+ | // 별도의 빌드 전용 클래스와 메소드 | ||
+ | class ClientBuilder { | ||
+ | @Builder(builderMethodName = " | ||
+ | public static ImmutableClient newClient(int id, String name) { | ||
+ | return new ImmutableClient(id, | ||
+ | } | ||
+ | } | ||
+ | ImmutableClient testImmutableClient = ClientBuilder.builder() | ||
+ | .name(" | ||
+ | .id(1) | ||
+ | .build(); | ||
+ | assertThat(testImmutableClient.getName()) | ||
+ | .isEqualTo(" | ||
+ | assertThat(testImmutableClient.getId()) | ||
+ | .isEqualTo(1); | ||
- | ==== 참조 ==== | + | </ |
+ | |||
+ | |||
+ | ===== 참조 | ||
* [[https:// | * [[https:// | ||