Lombok 注释不适用于继承
Lombok Annotations are not working with inheritance
我有一个类似 parent class (File A.java
) 的东西。
每个 class 都在扩展这个 class,因为每个 class 都需要 name
。
当我在 File X.java
中使用 @With
函数时,它适用于作为 File B.java
.
一部分的 .withDescription("xxx")
但是不能将 @With
函数与 .withName("xxx");
一起使用
至少 IntelliJ 没有显示 .withName("xxx")
.
但是继承的 .setName("xxx")
正在按预期工作。
知道如何让它按预期工作吗?
我看到 this Answer 使用 @SuperBuilder
,但我想在没有 @Builer
/ @SuperBuilder
的情况下使用
文件A.java
@Getter
@Setter
@With
@MappedSuperclass
public class A {
public String name;
}
文件B.java
@Getter
@Setter
@With
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class B extends A {
public String description;
}
文件X.java
public class X {
public void x() {
var b = new B().withDescription("xxx"); // it works
b.withName("xxx"); // is NOT working.
b.setName("xxx"); // only set is working, even it's only inherited.
}
您需要将 @AllArgsConstructor
添加到 A
我有一个类似 parent class (File A.java
) 的东西。
每个 class 都在扩展这个 class,因为每个 class 都需要 name
。
当我在 File X.java
中使用 @With
函数时,它适用于作为 File B.java
.
一部分的 .withDescription("xxx")
但是不能将 @With
函数与 .withName("xxx");
一起使用
至少 IntelliJ 没有显示 .withName("xxx")
.
但是继承的 .setName("xxx")
正在按预期工作。
知道如何让它按预期工作吗?
我看到 this Answer 使用 @SuperBuilder
,但我想在没有 @Builer
/ @SuperBuilder
文件A.java
@Getter
@Setter
@With
@MappedSuperclass
public class A {
public String name;
}
文件B.java
@Getter
@Setter
@With
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class B extends A {
public String description;
}
文件X.java
public class X {
public void x() {
var b = new B().withDescription("xxx"); // it works
b.withName("xxx"); // is NOT working.
b.setName("xxx"); // only set is working, even it's only inherited.
}
您需要将 @AllArgsConstructor
添加到 A