Lombok 的@SuperBuilder - 错误 java: 找不到符号
Lombok's @SuperBuilder - Error java: cannot find symbol
我将 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;
}
我想在 child 的构建器中设置来自 parent 的 class 的字段,例如:
Employee.builder().a("Positive").b(1).build();
Employer.builder().a("Negative").c(-2.1).build();
乍一看似乎一切正常 - 打开文件时没有显示任何错误并且生成器正常。然而,在 mvn clean compile 之后,我在每个 @SuperBuilder 行(即在这 3 个 classes 中的每一个)上得到以下结果:
Error:(20) java: cannot find symbol
我在这里错过了什么?我尝试更新 Lombok 插件版本并重新安装它,但没有任何成功。
好的,我找到了。我错过了用户 class 正在扩展我们应用程序中每个实体扩展的基本 class。看起来很明显,但我没有注意到...
无论如何,我只通过 运行 终端中的 mvn clean install 发现 - 输出比 IntelliJ 中的输出要冗长得多,它指出了这一点class。添加@SuperBuilder注解后编译成功
但是@SuperBuilder(toBuilder=true)才是正确的使用方式。
我遇到了同样的问题,将@SuperBuilder
添加到所有"base"类 解决了问题。
之前:
abstract class Parent {
...
}
@SuperBuilder
class Child extends Parent {
...
}
之后:
@SuperBuilder // <- addded
abstract class Parent {
...
}
@SuperBuilder
class Child extends Parent {
...
}
我将 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;
}
我想在 child 的构建器中设置来自 parent 的 class 的字段,例如:
Employee.builder().a("Positive").b(1).build();
Employer.builder().a("Negative").c(-2.1).build();
乍一看似乎一切正常 - 打开文件时没有显示任何错误并且生成器正常。然而,在 mvn clean compile 之后,我在每个 @SuperBuilder 行(即在这 3 个 classes 中的每一个)上得到以下结果:
Error:(20) java: cannot find symbol
我在这里错过了什么?我尝试更新 Lombok 插件版本并重新安装它,但没有任何成功。
好的,我找到了。我错过了用户 class 正在扩展我们应用程序中每个实体扩展的基本 class。看起来很明显,但我没有注意到...
无论如何,我只通过 运行 终端中的 mvn clean install 发现 - 输出比 IntelliJ 中的输出要冗长得多,它指出了这一点class。添加@SuperBuilder注解后编译成功
但是@SuperBuilder(toBuilder=true)才是正确的使用方式。
我遇到了同样的问题,将@SuperBuilder
添加到所有"base"类 解决了问题。
之前:
abstract class Parent {
...
}
@SuperBuilder
class Child extends Parent {
...
}
之后:
@SuperBuilder // <- addded
abstract class Parent {
...
}
@SuperBuilder
class Child extends Parent {
...
}