fixedbug:Lombok@Builder 构造 方法生成

文章目录

  • 前言
  • 一、Lombok的一些常用注解
  • 二、@Builder 构造 方法问题
    • 2.1 @Builder 生成私有的构造方法:
    • 2.2 处理方式:
  • 总结

前言

本文记录在使用:Lombok@Builder 时 ,发送Post 请求,后端在接收参数时报 无法找到 构造方法的错误,所以记录Lombok@Builder 的一些用法 。


一、Lombok的一些常用注解

注解功能使用场景
@Data组合注解:包含 @Getter+@Setter+@ToString+@EqualsAndHashCode+@RequiredArgsConstructor普通业务 DTO/POJO 类
@Getter/@Setter为所有非静态字段生成 getter/setter 方法(final 字段仅生成 getter)只需部分 getter/setter 的类
@NoArgsConstructor生成无参构造方法需要 Jackson 反序列化、Spring 实例化的类
@AllArgsConstructor生成包含所有字段的全参构造方法需要批量初始化所有字段的场景
@Builder生成建造者模式(builder() + 链式赋值 + build())多字段初始化、可选参数较多的场景
@Slf4j生成私有静态日志对象 private static final Logger log = LoggerFactory.getLogger(类名.class);所有需要打印日志的类(Controller/Service)

二、@Builder 构造 方法问题

一个类如果明确声明构造方法,在编译时jdk 会为其生成一个默认的无参构造方法,但是如果显示声明了则不会在被jdk 生成无参的构造方法; @Builder 会为改类默认生成一个私有的构造方法(全参数的),如果此时类中如果没有明确声明 public 作用域的构造方法,jackson 在序列化时因为访问不到有效的构造方法进而报错(即使@Builder 生成了但是其为私有的构造方法 jackson序列化时无法访问到)

2.1 @Builder 生成私有的构造方法:

代码如下(示例):

@Data@Builder@Accessors(chain=true)publicclassStudentDtoimplementsSerializable{privateStringstudentId;privateStringstudentName;privateIntegerstudentAge;privateStringstudentSex;}

对应class 构造方法:

@GeneratedStudentDto(finalStringstudentId,finalStringstudentName,finalIntegerstudentAge,finalStringstudentSex){this.studentId=studentId;this.studentName=studentName;this.studentAge=studentAge;this.studentSex=studentSex;}

此时发送post 请求报错提示:

2.2 处理方式:

通过 @AllArgsConstructor 和 @NoArgsConstructor 来声明生成全部参数的构造方法,和生成无参的构造方法;

代码如下(示例):

@Data@Builder@AllArgsConstructor@NoArgsConstructor@Accessors(chain=true)publicclassStudentDtoimplementsSerializable{privateStringstudentId;privateStringstudentName;privateIntegerstudentAge;privateStringstudentSex;}

对应生成的class:

@GeneratedpublicStudentDto(finalStringstudentId,finalStringstudentName,finalIntegerstudentAge,finalStringstudentSex){this.studentId=studentId;this.studentName=studentName;this.studentAge=studentAge;this.studentSex=studentSex;}@GeneratedpublicStudentDto(){}

总结

@Builder 只会生成全部参数但是是私有的构造方法,导致web 请求对入参进行序列化时 无法访问到有效的构造方法从而报错,此时可以使用@AllArgsConstructor 和@NoArgsConstructor 为其生成有参和无参的构造方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1201200.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

还能火多久?电动冲浪板行业迎来“新品时代”

水上运动这行当,今年彻底变天了。那些还在热衷于传统冲浪板的人,可能还没醒过味儿来——现在电动冲浪板正以不可阻挡之势席卷而来,电动冲浪板行业已然迎来了“新品时代”。 GOYOJO作为肇庆市天科机电有限公司的核心…

拒稿率 80%?宏智树 AI 拆解期刊论文 “隐形加分项”,新手也能精准踩中审稿偏好

作为深耕论文写作科普的教育博主,后台每天都被粉丝的期刊投稿难题刷屏:“选题自嗨式写作,初审直接被拒”“格式改了 3 遍仍不达标”“文献引用踩坑,审稿人质疑学术严谨性”…… 其实期刊投稿的核心,是精准拿捏审稿人关…

Springboot 缓存@Cacheable 使用

文章目录前言一、Cacheable 是什么?二、Springboot 项目中如何使用2.1 基于内存实现:2.1.1 Cacheable 引入并使用:2.1.2 Cacheable 配置参数2.2 Cacheable 基于redis 缓存2.3 Cacheable 注解属性总结前言 一、Cacheable 是什么? …

2026 运动鞋品牌科普新篇:五大专业标杆的技术革新与选购指南

​一、2026 运动鞋行业:三大新趋势引领消费变革 2026 年,全球运动鞋市场规模预计突破 2800 亿美元,行业发展呈现三大核心新趋势:一是技术场景化融合,不再是单一技术堆砌,而是针对具体运动场景实现 “技术精准匹配…

风力发电的调研报告

三.风力发电机的分类 根据基本结构以及运行原理,发电机通常可分为直流电机、感应异步电机和同步电机几大类。风力发电系统中电机类型繁多,包括以下类型。 (一)在CSCF 风电系统中常用的发电机包括异步机感应电机和电励磁…

基于Java+SpringBoot+SSM幼儿园管理系统(源码+LW+调试文档+讲解等)/幼儿园管理软件/幼儿园管理平台/幼儿园信息化系统/幼儿园教务系统/幼儿园管理系统软件/幼儿园管理解决方案

博主介绍 💗博主介绍:✌全栈领域优质创作者,专注于Java、小程序、Python技术领域和计算机毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2025-2026年最新1000个热门Java毕业设计选题…

靠谱的电动冲浪板品牌,太酷了吧!

在水上运动的世界里,电动冲浪板正以一种酷炫的姿态吸引着众多爱好者的目光。想象一下,在湛蓝的海面上,冲浪者踩着电动冲浪板,风驰电掣般地穿梭,那场景简直太酷了!今天,我们就来深入探讨一下靠谱的电动冲浪板品牌…

双目三维重建的步骤与核心算法

双目三维重建的步骤与核心算法 双目三维重建是模拟人类双眼视觉原理,通过两个固定位置的相机拍摄同一场景,利用视差计算三维坐标的技术,广泛应用于机器人导航、自动驾驶、三维建模等领域。其流程可分为六大核心步骤…

2026年变压器绕组变形测试仪知名品牌实力对比与战略选购指南

在全球能源转型与新型电力系统建设加速的宏观背景下,电力设备的状态检测与智能运维已从“可选”升级为“必选”。变压器作为电网的核心资产,其绕组的机械健康状况直接关系到整个电网的稳定与安全。变压器绕组变形测试…

别再凑字数!宏智树 AI 教你把课程论文写成 “高分范本”

作为深耕论文写作科普的教育博主,每到期末就被学生们的课程论文难题包围:“选题要么太泛要么太偏,凑够字数都难”“文献堆了一堆,却不知道怎么整合出逻辑”“查重改到崩溃,结果还是被导师说‘缺乏思考’”…… 其实课程…

手动磨题 VS 智能生成?宏智树 AI 解锁问卷设计的学术高效范式

做社科实证论文时,你是否经历过这样的窘境:花一周时间翻文献、磨题项,设计出的问卷却被导师批 “信效度不足”;用普通表单工具生成问卷,又因题项诱导性强、逻辑混乱,导致回收的数百份数据沦为 “无效样本”…

vtb|blog|auto

这周在尝试一些事情,做新东西的感觉很刺激很开心,但一天下来就感觉脑子像被打了一样… vtb 模型整合的差不多了…还有一些小问题 不知道什么时候可以做好 随缘吧 好了应该会用小号在b站上播着玩玩个人网站 博客网站写的 简单-花哨-简单-花哨… 还在寻找一…

2026液氮速冻机市场盘点:哪些品牌更受青睐?液氮/制氧机/汽化器/液氮速冻机/真空管/液氩,液氮速冻机厂商找哪家

在消费升级与食品安全标准日益提升的背景下,食品工业对加工技术的要求不断攀高。液氮速冻技术,以其极速冷冻(-196℃)、最大程度锁住食材原鲜、抑制微生物活动及有效减少细胞冰晶损伤等显著优势,正成为高端食品加工…

适合学生二次开发的轮式机器人需求深度分析与产品选型指南

随着人工智能与机器人技术的深度融合,高校在开展教学、竞赛及科研活动时,对轮式机器人底盘的二次开发需求呈现出显著的分层化与专业化趋势。学生开发的核心需求已从简单的遥控移动转向“感知-决策-执行”全链路的深度…

二氧化碳测试仪源头厂家有哪些?2026年优质供应商与知名厂家汇总

随着“双碳”战略的深入推进,碳捕集、利用与封存(CCUS)技术规模化应用,以及工业生产、医疗健康、暖通制冷、科研教学等领域对二氧化碳浓度监测的需求日益严苛,二氧化碳测试仪的市场需求持续攀升。源头厂家凭借自主…

科研绘图工具R语言

目录 前言: 一、下载软件 二、简单绘图 前言: 有的时候需要绘制复杂图形,但是你其实自己也不知道究竟有哪些可以绘制的图,除了散点图,折线图等等,下面就是有一个网站,上面有很多图形&#…

宏智树 AI:一键生成三类高分 PPT,学术职场汇报再也不踩坑

作为深耕论文写作科普的教育博主,后台被催更最多的内容,不是论文框架搭建,也不是参考文献排版,而是 “学术 PPT 到底怎么做”。从开题报告的思路阐述,到论文答辩的成果展示,再到职场的工作汇报,…

SAE J1939 转 Profinet 工业数据采集网关 实现全生命周期追溯 挖掘机运维效率升级

一、项目背景某工程机械制造商针对新一代智能液压挖掘机进行智能化升级,需解决设备动力系统、液压执行系统、电控操作系统之间的实时协同与精准控制难题。传统挖掘机采用机械式控制与离散式电控架构,发动机、液压泵、动臂/斗杆伺服执行机构数据孤立&…

四通道信息融合下的齿轮箱故障诊断(Python代码,SVM模型和CNN模型进行对比实验,解压缩即可运行,有详细中文注释)

1.效果运行视频:四通道信息融合下的齿轮箱故障诊断(Python代码,SVM模型和CNN模型进行对比实验)_哔哩哔哩_bilibili 用到的库: 2.数据集介绍:数据免费下载链接(不要积分)&#xff1a…

揭秘那些比较好的电动冲浪板厂家

超棒!揭秘那些比较好的电动冲浪板厂家 在水上运动的浪潮中,电动冲浪板正逐渐成为热门之选。它打破了传统冲浪对海浪的依赖,让更多人能在平静水域体验冲浪的乐趣。今天,我们就来深入了解一下电动冲浪板,同时揭秘那…