【问题标题】:JAXB multiple inheritance propOrderJAXB 多重继承 propOrder
【发布时间】:2014-01-04 05:38:12
【问题描述】:

我有一个类似的结构

public class Grandpa...

public class Father extends Grandpa...

public class Son extends Father...

我想用 propOrder 注释将它编组到文件中。

所以我可以在 Grandpa 上使用 @XmlTransient 并在父亲类上设置 propOrder,但是 如何将 propOrder 应用于所有 3 个类?

据我了解,'@XmlTransient'-方法仅适用于一个超类和一个子类?

【问题讨论】:

    标签: java inheritance jaxb xmltransient


    【解决方案1】:

    当您在一个类上指定 @XmlTransient 时,就 JAXB 而言,您将其从继承层次结构中删除,并且其属性被视为其子级的一部分。这意味着如果您将Father 标记为瞬态,则可以将其属性包含在propOrder 中以获取Son。如果您将GrandpaFather 标记为瞬态,那么您可以在propOrder 中为Son 包含这两个类的属性。

    没有@XmlTransient,您仍然可以使用propOrder,但在propOrder 中,您只能指定与该类对应的属性。这对应于扩展复杂类型发生的元素排序,继承的属性首先出现。

    更多信息

    【讨论】:

    • 谢谢!在问之前我读了很多你的文章:)“如果你将爷爷和父亲标记为瞬态,那么你可以在儿子的 propOrder 中包含这两个类的属性。”但在这种情况下,不能在父亲对象和爷爷对象上使用proporder?所以在这种情况下,我可以只订购 Son 类实例的字段?
    • @EugeneKisly - 没错。这是您要寻找的行为吗?
    • 不,我正在寻找父亲对象、爷爷对象和儿子对象中的排序属性。
    • @EugeneKisly - 您希望来自Grandpa 的属性出现在FatherGrandpaSon 对象中的不同相对位置?
    • 是的,例如我想订购 GrandPa 对象中的属性,但我也想查看 Son 属性,而不是所有 GrandPa 属性,而是与它们混合。有没有可能?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多