parent 构造函数的 Child class 上的 NoArgsConstructor 和 AllArgsConstructor 注释
NoArgsConstructor and AllArgsConstructor annotation on Child class for parent constructors
溢出社区大家好,我正在努力解决 Lombok 的继承问题。我正在尝试在 child class 上添加注释 @AllArgsConstructor
和 @NoArgsConstructor
以使用 parent lombok 构造函数但出现错误 "重复方法 Child()".
Parent class:
@ToString
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public class Parent {
private String propertyA;
private String propertyB;
}
Child class:
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class Child extends Parent {
@Override
public void setPropertyA(String propertyA) {
this.propertyA(StringUtils.upperCase(propertyA));
}
}
错误信息:
Duplicate method Child() in type Child Java(67109219)
感谢 回复,我了解到 child class 上的 ArgsConstructor 始终为空,导致两个相同的构造函数。
是否有一种 Lombok 方法可以基于 parent lombok ArgsConstructors 在我的 child class 上生成 ArgsConstructors?
在你的Childclass中你没有属性,所以@NoArgsConstructor
和@AllArgsConstructor
是一样的,所以出现错误。
如果您想要一个 all-args 构造函数将属性传递给 parent class 的 all-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));
}
}
溢出社区大家好,我正在努力解决 Lombok 的继承问题。我正在尝试在 child class 上添加注释 @AllArgsConstructor
和 @NoArgsConstructor
以使用 parent lombok 构造函数但出现错误 "重复方法 Child()".
Parent class:
@ToString
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public class Parent {
private String propertyA;
private String propertyB;
}
Child class:
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class Child extends Parent {
@Override
public void setPropertyA(String propertyA) {
this.propertyA(StringUtils.upperCase(propertyA));
}
}
错误信息:
Duplicate method Child() in type Child Java(67109219)
感谢
是否有一种 Lombok 方法可以基于 parent lombok ArgsConstructors 在我的 child class 上生成 ArgsConstructors?
在你的Childclass中你没有属性,所以@NoArgsConstructor
和@AllArgsConstructor
是一样的,所以出现错误。
如果您想要一个 all-args 构造函数将属性传递给 parent class 的 all-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));
}
}