news 2026/1/3 11:19:51

@Builder.Default 未生效

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
@Builder.Default 未生效

一、问题代码

import lombok.Builder; import lombok.Data; @Data @Builder public class User { private String name = "未知用户"; private Integer age; public static void main(String[] args) { // 通过Builder创建对象,未指定name User user = User.builder().age(28).build(); System.out.println(user.getName()); // 输出:null(预期:未知用户) } }

二、根源分析:@Builder.Default 的作用机制

要解决生效问题,需先明确@Builder.Default的核心设计逻辑:
@Builder的本质:Lombok 的@Builder会为实体类生成一个内部Builder类,通过Builder的setter方法赋值属性,最终调用build()方法创建目标对象。
若仅在属性上直接赋值,该赋值逻辑仅在通过new User()创建对象时生效,不会自动同步到 Builder 类中。

三、解决方案:正确使用 @Builder.Default

import lombok.Builder; import lombok.Data; @Data @Builder public class User { // 正确用法:@Builder.Default直接标注在属性上,赋值语句紧跟 @Builder.Default private String name = "未知用户"; // 该默认值会同步到Builder private Integer age; public static void main(String[] args) { User user = User.builder().age(28).build(); System.out.println(user.getName()); // 输出:未知用户(生效!) // 显式设置name时,会覆盖默认值 User user2 = User.builder().name("张三").age(30).build(); System.out.println(user2.getName()); // 输出:张三 } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/3 2:37:59

Redis最佳实践--键值设计

一、Redis Key-Value设计规范&性能优化 1. key名设计规范 【建议】 以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id login:user:10 优点: 可读性强避免key冲突方便管理更节省内存:key是string类…

作者头像 李华
网站建设 2026/1/3 2:37:56

OpenBoard跨平台交互式白板:从入门到精通的完整指南

OpenBoard跨平台交互式白板:从入门到精通的完整指南 【免费下载链接】openboard 项目地址: https://gitcode.com/gh_mirrors/op/openboard 在移动设备日益普及的今天,如何选择一款既高效又易用的虚拟键盘成为许多用户的困扰。OpenBoard作为一款优…

作者头像 李华
网站建设 2026/1/3 2:37:43

如何快速配置OpenWrt访问控制:家庭网络管理完整指南

在当今数字化家庭环境中,科学管理网络使用时间已成为维护家庭健康作息的重要技术手段。OpenWrt访问控制模块通过精准的时间调度和设备识别,为家庭用户提供了一套简单易用的网络管控解决方案,让您轻松实现对孩子上网时间、娱乐设备使用的智能管…

作者头像 李华
网站建设 2026/1/3 4:34:31

DiT多头自注意力机制:技术原理深度解析与性能优化实践

DiT多头自注意力机制:技术原理深度解析与性能优化实践 【免费下载链接】DiT Official PyTorch Implementation of "Scalable Diffusion Models with Transformers" 项目地址: https://gitcode.com/GitHub_Trending/di/DiT 引言:扩散模型…

作者头像 李华
网站建设 2026/1/3 4:34:29

Pandapower电力系统分析完整教程:从零基础到实战应用

Pandapower电力系统分析完整教程:从零基础到实战应用 【免费下载链接】pandapower Convenient Power System Modelling and Analysis based on PYPOWER and pandas 项目地址: https://gitcode.com/gh_mirrors/pa/pandapower 为什么选择Pandapower进行电力系统…

作者头像 李华