news 2026/6/10 17:08: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/6/10 13:05:09

互联网大厂Java面试全流程:微服务、消息队列与AI场景深度问答实录

互联网大厂Java面试全流程:微服务、消息队列与AI场景深度问答实录 故事开场 谢飞机,江湖人称“水货程序员”,今天走进了国内知名互联网大厂的面试间。面试官严肃冷静,谢飞机一身轻松搞笑。三轮面试,场景从支付电商到智…

作者头像 李华
网站建设 2026/5/27 4:39:01

Java CompletableFuture 深度解析:异步编程的利器与实践指南

前言在 Java 并发编程体系中,异步编程是提升系统吞吐量与响应速度的关键技术。传统的Future接口虽能实现任务的异步执行,但存在获取结果阻塞、无法链式调用、缺乏异常处理机制等局限,难以满足复杂业务场景的需求。Java 8 引入的CompletableFu…

作者头像 李华
网站建设 2026/6/10 4:07:21

Remote DOM终极指南:重新定义跨环境UI渲染的完整解析

在当今Web开发领域,我们面临着一个看似无解的矛盾:如何在保持用户体验完整性的同时,对第三方代码进行严格的安全控制?传统方案如IFrame虽然提供了隔离性,却在灵活性上大打折扣;而直接嵌入外部脚本又可能带来…

作者头像 李华
网站建设 2026/6/10 13:20:04

数据结构:二叉排序树构建与遍历的解析与代码实现

树节点定义与实现树节点的结构设计是二叉树算法的核心基础,采用面向对象的方式封装节点属性。TreeNode类包含三个关键成员变量:lchild和rchild作为引用类型存储子节点地址,data以整型存储节点实际值。这种设计模拟指针功能,形成节…

作者头像 李华
网站建设 2026/6/10 13:43:06

FanControl完整配置指南:从新手到专家的快速优化路径

FanControl完整配置指南:从新手到专家的快速优化路径 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/…

作者头像 李华
网站建设 2026/6/10 13:13:39

LaTeX文档紧急救援手册:5步快速找回丢失文件

LaTeX文档紧急救援手册:5步快速找回丢失文件 【免费下载链接】LaTeX-Workshop Boost LaTeX typesetting efficiency with preview, compile, autocomplete, colorize, and more. 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX-Workshop 当你在深夜赶论…

作者头像 李华