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

Java 21中使用Lombok @Builder注解编译报错问题求助

Lombok @Builder 编译报错:找不到userMessage方法的解决方案

问题背景

使用Lombok 1.18.30 + Java 21,在IntelliJ IDEA中编译项目时出现以下错误:

java: cannot find symbol
  symbol:   method userMessage(java.lang.String)
  location: class com.api.mscompras.controller.exceptionHandler.Problem.ProblemBuilder

核心原因

Lombok 1.18.30版本对Java 21的兼容性存在缺陷,Java 21的字节码规范和新特性与该版本Lombok的代码生成逻辑不匹配,导致Builder模式无法正确生成对应字段的setter方法。

解决步骤

  • 升级Lombok版本:将Lombok升级至1.18.32及以上(官方从该版本开始完善Java 21支持)。
    Maven依赖修改示例:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.32</version>
        <scope>provided</scope>
    </dependency>
    

    Gradle依赖修改示例:

    compileOnly 'org.projectlombok:lombok:1.18.32'
    annotationProcessor 'org.projectlombok:lombok:1.18.32'
    
  • 同步更新IDEA Lombok插件:打开IDEA的File > Settings > Plugins,搜索Lombok插件并更新到最新版本,避免插件与依赖版本不兼容。

  • 确认注解处理器启用:进入File > Settings > Build, Execution, Deployment > Compiler > Annotation Processors,勾选Enable annotation processing选项。

  • 清理编译缓存并重新构建:执行项目构建工具的清理命令(Maven:mvn clean install;Gradle:gradle clean build),再在IDEA中执行Build > Rebuild Project。

额外排查点

如果以上步骤无效,检查以下内容:

  • 确认Problem类中的userMessage字段存在,且未被@Builder.Exclude注解排除在Builder生成逻辑外。
  • 尝试在Problem类上同时添加@AllArgsConstructor与@Builder,确保Builder能正确识别所有字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:22:14