龙目岛@SuperBuilder - 错误java:找不到符号

2022-09-04 02:19:12

我已经将Lombok与IntelliJ一起使用了一段时间。我已经安装了最新的(v. 0.28)Lombok插件,启用了注释处理,并在pom.xml中添加了龙目岛依赖项(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 干净编译之后,我在每个@SuperBuilder行(即在这 3 个类中的每个类中)都会得到以下结果:Error:(20) java: cannot find symbol

我在这里错过了什么?我尝试更新龙目岛插件版本并重新安装它,但没有成功。


答案 1

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

以前:

abstract class Parent {
   ...
}

@SuperBuilder
class Child extends Parent {
   ...
}

后:

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

@SuperBuilder
class Child extends Parent {
   ...
}

答案 2

好吧,我找到了。我忽略了 User 类扩展了我们应用程序中的每个实体扩展的基本类。这似乎很明显,但我没有注意到...

无论如何,我只通过在终端中运行mvn干净安装才发现的 - 输出比IntelliJ中的输出要详细得多,并且它指出了这个类。添加@SuperBuilder注释后,编译成功。

但是@SuperBuilder(toBuilder=true)是正确的使用方式。


推荐