您现在的位置是:首页 > 文章详情

踩坑系列之Lombok @Builder 注解

日期:2020-02-11点击:1152

简介

Builder 使用创建者模式又叫建造者模式。简单来说,就是一步步创建一个对象,它对用户屏蔽了里面构建的细节,但却可以精细地控制对象的构造过程。@Builder注释为你的类生成相对略微复杂的构建器API。@Builder可以让你以下面显示的那样调用你的代码,来初始化你的实例对象:

User.builder().name("xiaoming").age(18).build();

但Builder注解也非常容易踩坑,下面介绍两个容易出错的坑。

属性包含默认值

@Setter @Getter @Builder public class User { private Integer age = 18; private String name; }

在使用Builder构造User对象的时候,默认值无效。如上面设置的age默认值为18,但使用builder构建对象的时候这个默认值无效,下面的代码会输出为null

 User user = User.builder().name("xiaoming").build(); System.out.println(user.getAge()); // null

Lombok的@Builder注解在使用的,会覆盖model自己的无参数构造函数

image
从上图中可以看出无参数的构造方法不存在,全参数的构造方法为私有。这个时候对其序列化操作会出现异常,如下图。
image
此时可以通过@NoArgsConstructor @AllArgsConstructor 注解来解决

原文链接:https://yq.aliyun.com/articles/744593
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章