Warum nicht JAXB erlauben, Anmerkungen auf Getter, der alle ziehen aus den gleichen member-variable?
Warum Beispiel Eine Arbeit, während Beispiel B wirft eine "JAXB annotation an einer Methode, die nicht eine JAXB-Eigenschaft" Ausnahme?
Bin ich mit JAX-WS mit Spring MVC.
Beispiel Eine
package com.casanosa2.permissions;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "FooXMLMapper")
public class FooXMLMapper implements IFoo {
@XmlElement
private final boolean propA;
@XmlElement
private final boolean propB;
public FooMapper(IFoo foo) {
propA = foo.getPropA()
propB = foo.getPropB()
}
public FooMapper() {
propA = false;
propB = false;
}
@Override
public boolean getPropA() {
return propA;
}
@Override
public boolean getPropB() {
return propB;
}
}
Beispiel B
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "FooXMLMapper")
public class FooXMLMapper {
private final IFoo foo;
public FooMapper() {
foo = new IFoo() {
@Override
public boolean getPropA() {
return false;
}
@Override
public boolean getPropB() {
return false;
}
};
}
public FooXMLMapper(IFoo foo) {
this.foo = foo;
}
@XmlElement
public boolean getPropA() {
return foo.getPropA();
}
@XmlElement
public boolean getPropB() {
return foo.getPropB();
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Glaube ich, dass die Accessoren werden ignoriert, wenn es den Blick direkt auf die Instanz-Variablen und-in deinem Beispiel B gibt es keine aktuellen Instanz-Variablen des richtigen namens. Sie haben zu sagen, es explizit zu verwenden @XmlAccessorType(XmlAccessType.KEINE) in der Klasse und der @XmlElement und @XmlAttribute auf die get - /set-Methoden. Zumindest ist das, was ich am Ende tun mit meinem JAXB-mapping.
Ich habe nicht versucht, deinen code noch, aber es ist Beispiel Eine, die sieht falsch aus, nicht B. Beispiel Eine, die Sie angegeben haben die Eigenschaft Zugriffsmethoden (get/set-Methoden), aber Sie haben kommentierte die Klasse Felder statt (Instanz-Variablen).
Glaube ich, dass es ein richtigen JAXB-Eigenschaft, müssten Sie setter für Sie, sowie Getter. (würden Sie wahrscheinlich benötigen einen Standard-Konstruktor als auch).