You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Lombok @SuperBuilder生成的builder方法不完整问题求助

解决STS中Lombok @SuperBuilder生成builder方法不完整的问题

针对你遇到的问题——cmd编译正常但STS里@SuperBuilder生成的builder缺少BigDecimal类型的commission方法,影响Mapstruct使用,这大概率是IDE的Lombok插件缓存、版本适配或者注解处理器配置问题,给你几个可行的解决步骤:

  • 检查并更新STS的Lombok插件
    打开STS的Help > Eclipse Marketplace,搜索Lombok,确认插件是最新版且已激活。如果插件版本过旧,更新到和当前STS版本兼容的版本。同时要确保STS安装目录下的sts.ini文件里已经正确添加了Lombok的Javaagent参数,比如-javaagent:D:\sts\lombok.jar,路径要准确,且jar版本和项目pom.xml里依赖的Lombok版本完全一致。

  • 清理IDE缓存并重建项目
    先执行Project > Clean,勾选你的项目后点击Clean;接着右键项目选择Maven > Update Project,勾选Force Update of Snapshots/Releases后确认;最后重启STS。IDE缓存经常会导致Lombok的注解生成代码不更新,这步能解决大部分这类问题。

  • 核对@SuperBuilder的使用规范
    如果Recipient类继承了父类,要确保父类也标注了@SuperBuilder,子类的@SuperBuilder可以加上(toBuilder = true)来保证继承正确的builder配置。另外检查Commission字段的定义,如果你手动写了重载的setter方法(比如同时有接收BigDecimal和Commission的方法),要确认没有和Lombok生成的代码冲突,必要时可以暂时注释手动方法,看是否能生成完整的builder。

  • 确认Mapstruct和Lombok的版本兼容性
    查一下你用的Mapstruct版本和Lombok版本是否匹配,比如Mapstruct 1.5.x需要搭配Lombok 1.18.20及以上版本,版本不兼容会导致IDE里的代码解析异常,进而影响builder方法的显示。

  • 调整IDE的注解处理器设置
    打开STS的Preferences > Java > Compiler > Annotation Processing,勾选Enable annotation processing;然后切换到Factory Path标签,确认项目依赖里的Lombok和Mapstruct Processor的jar包已经被添加进去,没有的话手动添加。

内容的提问来源于stack exchange,提问作者user23381600

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:42:04