카테고리 없음
lombok @Builder 사용시 필수 필드 사용
냐옴
2021. 9. 2. 16:35
lombok @Builder 사용시 필수 필드를 입력받도록 기존 builder 메소드를 재정의한다
import lombok.Builder;
import lombok.ToString;
// 기존 builder 이름을 innerBuilder 로 변경하고
@Builder(builderMethodName = "innerBuilder")
@ToString
public class MemberDto {
// required
private final String name;
// optional
private int age;
private String address;
// builder 메소드를 재정의해서 필수 필드를 입력받도록 변경
public static MemberDtoBuilder builder(String name) {
return innerBuilder().name(name);
}
}
사용
// .builder() 사용시 필수 필드를 먼저 입력
MemberDto memberDto = MemberDto.builder("john")
.age(10)
// .address("seoul")
.build();
System.out.println("memberDto = " + memberDto);
// memberDto = MemberDto(name=john, age=10, address=null)
다른 방법 #2
- 클래스 레벨에 @Builder 를 붙이고
- 필수 필드에 @NonNull 애노테이션을 적용한다
import lombok.Builder;
import lombok.Data;
import lombok.NonNull;
@Builder
@Data
static class Person {
@NonNull
private String name; // required
private Integer age; // optional
}