踩坑系列之Lombok @Builder 注解
简介
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自己的无参数构造函数
从上图中可以看出无参数的构造方法不存在,全参数的构造方法为私有。这个时候对其序列化操作会出现异常,如下图。
此时可以通过@NoArgsConstructor @AllArgsConstructor 注解来解决

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Serverless图片分类及身份证过滤
场景描述 场景一:大型图库智能管理通过深度学习算法,自动识别图像中的常见的场景,客户可以基于函数计算对接智能媒体管理的图像识别功能,轻松实现图片的自动管理和分组,完成大型图像库的智能管理。 场景二:身份证图片过滤通过扫描存储在OSS bucket中的图片,通过智能媒体管理进行身份证识别,找到海量图片中的身份证图片,对敏感信息进行处理。 解决问题 通过无服务器计算实现图片处理自动化 OSS触发器的使用 使用函数计算调用阿里云的AIP或SDK 产品列表 函数计算 智能媒体管理IMM 对象存储OSS 图片自动分类 身份证过滤 直达最佳实践 》》
- 下一篇
Tpflow 3.1 正式版正式发布—PHP 工作流引擎
欢迎使用 Tpflow V3.1工作流引擎 关于3.1 版本 Tpflow工作流引擎已经走过了三个大版本的迭代更新,整个框架接口更加趋向于稳定,3.1版本的架构弥补了3.0版本的的许多不足,引入了很多新的思路,新的方向,利用本章节详细的描述Tpflow的二次开发,以及使用。 版本下载 码云获取:码云地址 git clone https://gitee.com/ntdgg/tpflow cd tpflow 我们已将新版本更新到master分支 我们停止为3.0版本功能更新,但仍然提供3.0版本的BUG修复 git clone https://gitee.com/ntdgg/tpflow cd tpflow git checkout 3.0 特别提醒 特别注意:无法直接从3.0版本直接升级,3.0新增了许多特性,无法直接升级,我们会出全新的升级指导,老项目可以继续使用3.0版本,新项目建议直接使用3.1版本 主要特性 全面继承1.0、2.0、3.0版本所有特性如下: 基于<jsPlumb>可视化设计流程图 支持可视化界面设计 支持拖拽式流程绘制 三布局便捷...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题