gpt4 book ai didi

java - 如何使用Lombok创建调用父类(super class)AllArgsConstructor的构造函数?

转载 作者:行者123 更新时间:2023-12-05 04:22:59 27 4
gpt4 key购买 nike

我有一个父类(super class)和一个子类:

@Data
@AllArgsConstructor
public class Parent {

private String name;

}
@Data
public class Child extends Parent {

private int age;

public Child(String name, int age) {
super(name);
this.age = age;
}

}

如何使用 Lombok 注释来帮助我创建子类构造函数?

提前致谢:)

最佳答案

从 lombok 版本 1.18.2 开始,您可以为此使用 @SuperBuilder 注释。

@Data
@AllArgsConstructor
@SuperBuilder
public class Parent {

private String name;

}
@Data
@SuperBuilder
public class Child extends Parent {

private int age;
}

请记住,注释需要同时在父类和子类中。

然后您可以将其用作Child child = Child.builder().age(1).name("Mike").build()

如文档中所写

@SuperBuilder generates a protected constructor on the class thattakes a builder instance as a parameter. This constructor sets thefields of the new instance to the values from the builder.

官方documentation

如文档中所述,这并不能完全生成问题所要求的内容,

          public Child(String name, int age) {
super(name);
this.age = age;
}

但它创建了一个构造函数,该构造函数将构建器作为参数,并从该构建器及其包含的参数前进到实例化父类和子类中的两个字段。但这是 lombok 唯一可能的解决方案,即使用子类的构造函数来实例化父类和子类中的字段。

请记住,这是 4 年前作为实验性功能添加的,它仍然是 lombok 的一部分。

关于java - 如何使用Lombok创建调用父类(super class)AllArgsConstructor的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73843005/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com