首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Lombok中调用超级构造函数

如何在Lombok中调用超级构造函数
EN

Stack Overflow用户
提问于 2015-04-20 13:46:27
回答 7查看 158.9K关注 0票数 155

我有一节课

代码语言:javascript
复制
@Value
@NonFinal
public class A {
    int x;
    int y;
}

我还有另一个B班

代码语言:javascript
复制
@Value
public class B extends A {
    int z;
}

lombok抛出错误,说它找不到A()构造函数,显式地调用它,我希望lombok做的是给类b添加注释,以便它生成以下代码:

代码语言:javascript
复制
public class B extends A {
    int z;
    public B( int x, int y, int z) {
        super( x , y );
        this.z = z;
    }
}

我们在Lombok中有注释可以做到这一点吗?

EN

Stack Overflow用户

发布于 2020-08-03 21:49:44

作为一种选择,您可以使用com.fasterxml.jackson.databind.ObjectMapper从父类初始化子类

代码语言:javascript
复制
public class A {
    int x;
    int y;
}

public class B extends A {
    int z;
}

ObjectMapper MAPPER = new ObjectMapper(); //it's configurable
MAPPER.configure( DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false );
MAPPER.configure( SerializationFeature.FAIL_ON_EMPTY_BEANS, false );

//Then wherever you need to initialize child from parent:
A parent = new A(x, y);
B child = MAPPER.convertValue( parent, B.class);
child.setZ(z);

如果需要,您仍然可以在A和B上使用任何lombok注释。

票数 -1
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29740078

复制
相关文章

相似问题

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