【问题标题】:Lombok @Builder not working in lombok-1.16.18 java:cannot find symbol builderclassLombok @Builder 在 lombok-1.16.18 java 中不起作用:找不到符号 builderclass
【发布时间】:2018-01-08 12:33:17
【问题描述】:
@Builder
public class ProcessorLombokBO {
    private String panel;
    private String motherBoard;
    private String ram;
    private String hardDisk;
}

public static void main(String[] args) {
    ProcessorLombokBO processorLombokBO =
                    new ProcessorLombokBO.ProcessorLombokBOBuilder()
                    .panel("Brown")
                    .hardDisk("SanDisk 256GB")
                    .ram("4GB")
                    .motherBoard("Intel")
                    .build();
    System.out.println(processorLombokBO);
}

我正在尝试在 POJO 中实现 @Builder,但是当我执行 main 方法时,它给出了以下错误。

java: 找不到符号 符号:类 ProcessorLombokBOBuilder

我错过了什么吗?

【问题讨论】:

  • 错误在哪里,在您的 IDE 中?如果是这样,那么您确定您的 IDE 与 Lombok 兼容并且您有所需的插件/扩展吗?
  • 已安装 IDE 的 Lombok 插件?
  • ya.. 使用 Intellij.. 其他示例在 lombok 上运行良好
  • 我遇到了同样的问题。将 lombok 添加到项目中(之前安装了插件),所有与 lombok 相关的东西都有效,而不是 builder,这是不可见的。重启 Android Studio 后问题消失了

标签: java lombok


【解决方案1】:

我遇到了同样的问题,发现 IntelliJ 中禁用了 @Builder 支持:

【讨论】:

  • 你能告诉我在哪里可以找到这个设置吗,我在我的找不到。谢谢
  • 它位于:Preferences -> Languages & Frameworks -> Lombok plugin for me。仅供参考:我可以使用首选项中的搜索功能快速找到它。
  • @DoctorParameter 我找不到这个设置 - 对于 Lombok,我只看到“启用 lombok 版本警告”复选框,没有别的。
  • 我在 IntelliJ v2020.2 和 Lombok 插件 0.33-2020.2 上。也许设置已消失或您需要更新?
【解决方案2】:

编辑: 尝试将您的内部 ProcessorLombokBO 类设为静态。 您不能在内部非静态类上使用 Builder,正如您的示例中的编译错误在我的 IDE (Eclipse) 中所暗示的那样

方法构建器不能声明为静态的;静态方法只能 在静态或顶级类型中声明

原因是@Builder生成了一个内部静态类(ProcessorLombokBOBuilder 类)并添加了一个静态方法builder(),根据规范,这只有在外部类也是静态的情况下才有可能,因为否则你需要一个封闭的实例引用 Builder 类,这与静态类型的概念相矛盾。

原帖:通常你通过

来实例化你的生成器
ProcessorLombokBO.builder()

【讨论】:

  • 我也试过了。我收到此错误 java: cannot find symbol symbol: method builder()
  • 感谢您的回复。相同的代码在 eclipse 中工作。事情不仅仅在 Intellij 中有效。我不知道为什么。
  • 你能发布一个完整的代码示例吗? ProcessorLombokBO 是在专用的 java 文件中,还是与您的 main() 函数在同一类中的内部类?
  • 我在 1.16.18 中遇到了同样的问题 - builder() 方法在代码中的任何地方都不可见。我已将 Lombok 降级为 1.16.16,builder() 按预期工作。奇怪的是,在我再次升级到 1.16.18 之后,一切正常 - 可能是 Intellij 中的一些缓存问题?
  • 这很奇怪。也许您只是在第一次安装插件后忘记重新启动您的 ide?这就是我曾经发生过的事情 :-) 否则,如果你能重现这种行为,the Lombok github page 的人们可能会很感兴趣
猜你喜欢
  • 2018-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-23
  • 1970-01-01
  • 2019-01-27
  • 2016-05-02
  • 2019-10-22
相关资源
最近更新 更多