문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
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:// | ||