问题
使用lombok-builder注解,在builder时不为变量赋值。
@Setter
@Getter
@Builder
class TestGray {
private String grayType = "GRAY_TYPE1";
void testMethod(){
TestGray testGray = TestGray.builder().build();
System.out.println(testGray.getGrayType());
}
}
直接使用Builder进行构造后,发现test.getGrayType是null
不是预期的默认值 GRAY_TYPE1
升级到最新版
- 升级lombok的版本 >= 1.16.16
l<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
<scope>provided</scope>
</dependency>
- 使用@Builder.Default
@Setter
@Getter
@Builder
class TestGray {
@Builder.Default
private String grayType = "GRAY_TYPE1";
void testMethod(){
TestGray testGray = TestGray.builder().build();
System.out.println(testGray.getGrayType());
}
}
这样就ok了。
引用
https://segmentfault.com/a/1190000009514422
https://reinhard.codes/2016/07/13/using-lomboks-builder-annotation-with-default-values/
本文介绍如何使用 Lombok 的 @Builder 注解,并设置默认值。通过添加 @Builder.Default,可以在不指定某些字段的情况下,使这些字段采用默认值,解决了使用默认构造器时未初始化的问题。
1431

被折叠的 条评论
为什么被折叠?



