1

我目前在 JAXB 上遇到了一个尴尬的问题。所以我有以下类结构:

@XmlType
public abstract class MySuperClass
{
    ...
    ...
    @XmlTransient
    public Double getValue() ...
    ...
}

@XmlType
public class MySubClass extends MySuperClass
{
    public Double getValue()
    {
        return 100.00;
    }
}

@XmlType
public class MySubClass2 extends MySuperClass
{
    public Double getValue()
    {
        return 100.00;
    }
}

现在在我的另一个 JAXB 注释类中,我希望这样做:

@XmlType
public class MyOtherClass
{
    private MySuperClass var;

    public MySuperClass getVar()
    {
        return this.var;
    }
}

所以原因是我想在运行时设置 var 以便实际的返回类型是 MySubClass 或 MySubClass2。编组到 XML 是完美的,但是,解组回 java 类给了我 null 值。未调用 setter 方法。如何正确解组并仍保持类层次结构?

非常感谢您的帮助...

谢谢,

4

1 回答 1

1

好的,解决了这个问题。似乎 JAXB 只在类中寻找声明的 setter 方法,而不是去父类。在子类中覆盖 setter 方法后,解组工作。

于 2010-12-17T17:37:21.393 回答