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

Lombok @Builder注解无法识别Java Record类字段的问题如何解决

问题原因

你遇到的报错确实和Lombok版本对Java Record的支持不完善有关:
Lombok 从1.18.20版本开始才初步支持Java Record的@Builder注解,直到1.18.24版本才正式修复了Record类上标注@Builder时生成的建造者类无法识别Record组件的缺陷,你当前使用的1.18.22版本恰好存在这个兼容问题。

解决办法

  • 方案1:升级Lombok依赖到1.18.24及以上版本
    这是成本最低的解决方案,升级后你原本的Record代码不需要做任何修改即可正常运行,注意同步升级IntelliJ内置的Lombok插件到对应版本,避免IDE误报错。
  • 方案2:不升级版本的前提下,将@Builder注解放到Record的构造方法上
    写法示例:
    public record ApiError(String title, Map<String, String> errors) {
    
        @Builder(builderMethodName = "internalBuilder")
        public ApiError(String title, Map<String, String> errors) {
            this.title = title;
            this.errors = errors;
        }
    
        public static ApiErrorBuilder builder(String title) {
            return internalBuilder().title(title);
        }
    }
    
    这种写法在1.18.22版本下可以正常生成对应参数的建造者方法。
  • 方案3:暂时使用普通类替代Record实现,就是你已经验证可用的写法,后续升级依赖后再切换回Record即可。

额外排查点

如果升级版本后IDE仍然报找不到方法的错误,大概率是IDE缓存问题,可以按以下步骤清空缓存重启:

  1. 点击IntelliJ顶部菜单栏File → Invalidate Caches...
  2. 勾选Clear file system cache and local history
  3. 点击Invalidate and Restart等待IDE重启完成即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:06:03