扫码阅读
手机扫码阅读
Lombok中@Builder存在默认值的坑
185 2024-07-18
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
文章来源:
springboot葵花宝典
扫码关注公众号
摘要 - Lombok中@Builder存在默认值的坑
本文介绍了在使用Lombok库中的@Builder注解时遇到的一个问题,即为Java Bean的属性设置默认值后,通过build方式构建的对象中该属性值为null。同时提供了两种解决方案,以确保属性可以正确地应用默认值。
1. 默认值存在问题
创建了一个Student类,并尝试为其name属性设置默认值"张三"。然而,通过一个测试用例发现,使用@Builder注解构建的Student对象的name属性值为null,说明默认值未被应用。
2. 解决方案
2.1 在默认值字段上添加 @Builder.Default注解
给name属性添加@Builder.Default注解后,构建的Student对象的name属性成功显示了默认值"张三"。这种方法简单直观,但如果有多个字段都需要默认值,会变得繁琐,并且在Lombok官方1.18.4版本之前,使用这种方法构建的对象中没有默认值。
2.2 使用 toBuilder
通过将toBuilder参数设置为true,可以启用从类实例生成构建器实例的功能,从而避免了在每个字段上添加@Builder.Default注解。但这要求必须先实例化类才能创建构建器。修改测试后,使用new Student().toBuilder().build()构建的对象同样能够显示属性的默认值。
文末呼吁读者关注、点赞和分享,以支持作者,强调原创内容的价值,并鼓励转载时注明出处。
想要了解更多内容?
文章来源:
springboot葵花宝典
扫码关注公众号
springboot葵花宝典的其他文章
深入理解InnoDB存储引擎:逻辑存储结构、事务原理
InnoDB存储引擎是MySQL中最常用的存储引擎之一,它支持高级事务处理和并发控制,以及稳健的性能。本文将深入探讨InnoDB存储引擎的核心概念和工作原理,包括逻辑存储结构、事务原理。
多租户SaaS平台的数据库方案详解
随着云计算和SaaS(Software as a Service)模型的兴起,多租户系统成为了构建灵活、高效应用的重要架构。在构建多租户SaaS平台时,数据库方案的选择直接关系到数据隔离、性能和可扩展性。
云计算-6-Dockerfile制作镜像
云计算-6-Dockerfile制作镜像
Drools规则引擎快速入门
Drools规则引擎快速入门
Spring-1-透彻理解Spring XML的必备知识
Spring:Spring是一个开源的Java应用程序开发框架,提供了丰富的功能和组件来简化企业级应用程序的开发。Spring框架包括多个模块,如核心容器、数据访问、Web开发、AOP等,各个模块可按需引入和使用。
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线