gpt4 book ai didi

java - 我可以/应该在 "propOrder"注释中列出 JAXB 映射 bean 的继承属性吗?

转载 作者:太空狗 更新时间:2023-10-29 23:03:38 30 4
gpt4 key购买 nike

我有一堆 JAXB 注释的类,它们有一个共同的字段,所以我将该字段移动到一个父类(super class)中,就像这样

public class Base {
protected SomeType commonField;
}

@XmlRootElement(name = "foo") @XmlType(propOrder = { "commonField", "fooField" })
public class Foo extends Base {
private SomeOtherType fooField;
}

@XmlRootElement(name = "bar") @XmlType(propOrder = { "commonField", "barField" })
public class Bar extends Base {
private SomeOtherType barField;
}

现在,每当我编码 FooBar 之一时,我都会收到 IllegalAnnotationException 提示 commonField 被列在propOrder 但不存在于类中。从 propOrder 注释中删除它一切正常,但我想我应该列出所有映射的字段。我错过了什么?

最佳答案

继承类的字段/属性将始终出现在子类的字段/属性之前。这意味着默认情况下您不能在子类型的 propOrder 中指定它们。但是,如果您将父类标记为 @XmlTransient,则字段/属性将被视为属于子类,并且可以包含在 propOrder 中。

关于java - 我可以/应该在 "propOrder"注释中列出 JAXB 映射 bean 的继承属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6790168/

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