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

开发Apache Pulsar生产者时Davis类无builder()方法编译错误如何解决

问题原因及解决方案

编译报错的核心排查方向

  • 第一:IDE未正确配置Lombok支持
    所有Java IDE默认无法识别Lombok注解生成的代码,需要完成两步配置:
    1. 安装对应IDE的Lombok官方插件
    2. 开启IDE的注解处理开关:以IntelliJ IDEA为例,路径为 Settings > Build, Execution, Deployment > Compiler > Annotation Processors,勾选 Enable annotation processing 选项后重新编译项目。
  • 第二:构建工具未配置Lombok注解处理器
    仅引入Lombok依赖无法触发编译期的代码生成逻辑,需要在构建工具中补充注解处理器配置:
    • Maven配置示例(在pom.xml的build插件部分补充):
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
            <annotationProcessorPaths>
                <path>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>你的Lombok版本号</version>
                </path>
            </annotationProcessorPaths>
        </configuration>
    </plugin>
    
    • Gradle配置示例(在build.gradle的dependencies部分补充):
    annotationProcessor 'org.projectlombok:lombok:你的Lombok版本号'
    compileOnly 'org.projectlombok:lombok:你的Lombok版本号'
    

其他代码错误修正

你当前代码还存在字段不匹配的问题,后续编译会触发二次报错:
Davis类中定义的温度字段名为 temperature,但你在生产者代码中调用Builder时写的是 .temp_out((float) 18.5556),需要把方法名改为 .temperature((float) 18.5556) 才能匹配生成的Builder方法。


可选优化建议

如果后续需要Pulsar的JSONSchema能正常序列化/反序列化Davis对象,建议给Davis类补充@Getter、@Setter注解,避免序列化时因字段访问权限问题报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:15:03