陈同学
微服务
Accelerator
About
# Lombok @Builder 默认值问题 Lombok 使用广泛,这里分享一个 Lombok `@Builder` 小 case,今天自己踩了坑。 ```java @Data @Builder public class User { private String name = "kitty"; private int age = 20; private boolean enabled = true; public static void main(String[] args) { System.out.println(User.builder().build()); } } ``` 输出结果却是:`User(name=null, age=0, enabled=false)`,自行设置的值全部失效。 可以使用 `@Builder.Default` 标记属性,以保留默认值。 ```java @Data @Builder public class User { @Builder.Default private String name = "kitty"; @Builder.Default private int age = 20; @Builder.Default private boolean enabled = true; public static void main(String[] args) { System.out.println(User.builder().build()); } } ``` 输出结果为:`User(name=kitty, age=20, enabled=true)` 一般领域对象都会使用基础数据类型的包装类,很少使用基础数据类型,也很少给初始值,不容易发现。
本文由
cyj
创作,可自由转载、引用,但需署名作者且注明文章出处。
文章标题:
Lombok @Builder 默认值问题
文章链接:
https://chenyongjun.vip/articles/107
扫码或搜索 cyjrun 关注微信公众号, 结伴学习, 一起努力