본문 바로가기
백엔드

[Lombok] @Builder.Default - @Builder 사용 시 필드값 초기화 방법

by BeforB 2023. 8. 13.
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

댓글