Ich habe eine Klasse namens Ability, die von einer abstrakten Klasse CampaignObject
erbt.JAXB marshals "non-field"
CampaignObject
hat eine abstrakte Methode namens getInfo()
.
Fähigkeiten haben keine eigene Info. Wenn sie nach Informationen gefragt werden, sollten die Informationen ihres Besitzers zur Verfügung gestellt werden.
Wenn ich JAXB.marshal(...)
verwenden, um das zu marshalieren, enthält es die Besitzer Info-Text als XmlElement
auf jede Fähigkeit. Die Anmerkung Ability.getInfo()
mit @XmlTransient
macht keinen Unterschied.
Was kann ich tun?
Vielen Dank.
-Code wie folgt aus:
@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;
}
Hat nicht geholfen. Weder das Gegenteil noch: 'XmlAccessType.FIELD' –
Änderte die Antwort auf eine andere Idee, die ich hatte. –