develog

lombok @Builder 사용시 필수 필드 사용 본문

카테고리 없음

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
}
Comments