你好,溢出社区,我在Lombok的继承问题上苦苦挣扎。为了使用父类lombok构造函数,我尝试在子类上同时添加注释@AllArgsConstructor
和@NoArgsConstructor
,但是得到了错误“Child()”。
家长班:
@ToString
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public class Parent {
private String propertyA;
private String propertyB;
}
儿童班:
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class Child extends Parent {
@Override
public void setPropertyA(String propertyA) {
this.propertyA(StringUtils.upperCase(propertyA));
}
}
错误信息:
复制方法--类型为子Java(67109219)的子()
感谢@rentox98的答复,我知道我的子类上的ArgsConstructor总是空的,从而产生两个相同的构造函数。
是否有一种基于父类Lombok ArgsConstructors在我的子类上生成ArgsConstructors的lombok方法?
发布于 2022-02-04 18:20:05
在您的子类中,您没有属性,因此@NoArgsConstructor
和@AllArgsConstructor
是相同的,并且会发生错误。
如果您想要一个将属性传递给父类的所有args构造函数的所有args构造函数,那么您必须自己编写它;Lombok不会生成它。
@SuperBuilder
@NoArgsConstructor
public class Child extends Parent {
public Child(String propertyA, String propertyB) {
super(StringUtils.upperCase(propertyA), propertyB);
}
@Override
public void setPropertyA(String propertyA) {
this.propertyA(StringUtils.upperCase(propertyA));
}
}
https://stackoverflow.com/questions/70990997
复制相似问题