首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >父构造函数子类的NoArgsConstructor和AllArgsConstructor注释

父构造函数子类的NoArgsConstructor和AllArgsConstructor注释
EN

Stack Overflow用户
提问于 2022-02-04 18:12:23
回答 1查看 1.3K关注 0票数 0

你好,溢出社区,我在Lombok的继承问题上苦苦挣扎。为了使用父类lombok构造函数,我尝试在子类上同时添加注释@AllArgsConstructor@NoArgsConstructor,但是得到了错误“Child()”。

家长班:

代码语言:javascript
运行
复制
@ToString
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public class Parent {
    private String propertyA;
    private String propertyB;
}

儿童班:

代码语言:javascript
运行
复制
@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方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-04 18:20:05

在您的子类中,您没有属性,因此@NoArgsConstructor@AllArgsConstructor是相同的,并且会发生错误。

如果您想要一个将属性传递给父类的所有args构造函数的所有args构造函数,那么您必须自己编写它;Lombok不会生成它。

代码语言:javascript
运行
复制
@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));
    }
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70990997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档