我目前在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方法。如何正确解组并仍然维护类层次结构?
非常感谢帮助...
谢谢,
答案 0 :(得分:1)
好的,解决了这个问题。似乎JAXB只在类中寻找声明的setter方法而不是父类。覆盖子类中的setter方法后,解组工作。