我有一个名为Ability的类,它继承自抽象类CampaignObject
。
CampaignObject
有一个名为getInfo()
的抽象方法。
能力没有自己的信息。如果要求他们提供信息,则应提供其所有者的信息。
当我使用JAXB.marshal(...)
来封送时,它会将所有者信息文本包含在每个功能的XmlElement
上。使用Ability.getInfo()
注释@XmlTransient
并没有什么区别。
我该怎么办?
非常感谢。
这样的代码:
@XmlRootElement(name = "ability")
public class Ability extends CampaignObject {
private String val;
private Hero owner;
...
@Override
@XmlTransient
public String getInfo() {
return getOwner().getInfo();
}
@XmlAttribute
public String getVal() {
return val;
}
@XmlTransient
public Hero getOwner() {
return owner;
}
答案 0 :(得分:0)
尝试将@XmlAccessorType(XmlAccessType.NONE)
添加到您的类中,以确保除了您为映射添加注释的内容之外,它不会使用任何其他内容,这样您还应该能够删除@XmlTransient
注释。
答案 1 :(得分:0)
我已经规避了这个问题。我将is
重构/重命名为getInfo()
,并为除了能力之外的所有内容提供了新的retrieveInfo()
。
但是,如果有人知道如何真正解决问题,我仍然愿意学习。