首页 > 解决方案 > 龙目岛的@SuperBuilder - 错误java:找不到符号

问题描述

我已经将 Lombok 与 IntelliJ 一起使用了一段时间。我已经安装了最新的 (v. 0.28) Lombok 插件,启用了注释处理并在 pom.xml 中添加了 Lombok 依赖项 (v. 1.18.10)。直到今天,当我想实现实验性的@SuperBuilder时,一切都运行良好。

我有一个简单的层次结构:

@SuperBuilder
public class User {
   private String a;
}

@SuperBuilder
public class Employee extends User {
   private int b;
}

@SuperBuilder
public class Employer extends User {
   private double c;
}

我想在孩子的构建器中设置父类的字段,例如:

Employee.builder().a("Positive").b(1).build();

Employer.builder().a("Negative").c(-2.1).build();

乍一看,这一切似乎都有效 - 当文件打开并且构建器很好时,没有显示错误。但是,在mvn clean compile之后,我在每个 @SuperBuilder 行(即在这 3 个类中的每一个中)都得到以下结果: Error:(20) java: cannot find symbol

我在这里想念什么?我尝试更新 Lombok 插件版本并重新安装它,但没有任何成功。

标签: javaintellij-idealombok

解决方案


我遇到了同样的问题,添加 @SuperBuilder 到所有“基”类中解决了这个问题。

前:

abstract class Parent {
   ...
}

@SuperBuilder
class Child extends Parent {
   ...
}

后:

@SuperBuilder              // <- addded
abstract class Parent {
   ...
}

@SuperBuilder
class Child extends Parent {
   ...
}

推荐阅读