백엔드
[Lombok] @Builder.Default - @Builder 사용 시 필드값 초기화 방법
BeforB
2023. 8. 13. 16:59
728x90
Lombok에서 @Builder 어노테이션 사용 시 필드 초기화를 하면 아래와 같은 경고가 발생하는 이유 및 해결방법!
warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.
DTO에서 @Builder 어노테이션과 함께 필드 초기화를 하면 위와 같은 경고가 발생한다.
해석하자면,
@Builder는 초기화 표현을 완전히 무시한다. 초기화 표현식으로 default를 설정하길 원한다면 @Builder.Default 를 추가하라는 것이다. 혹은 만약 해당 값을 중간에 setting 하지 않을 것이라면, final 필드로 선언하여 사용하면 된다.
(그럴 경우, @Builder는 final 필드를 무시하기 때문에 warning이 발생하지 않는다.)
해결!!
아래와 같이 필드 위에 @Builder.Default 를 붙여주면 해결된다!
728x90