nehme an, ich habe diese Klasse:Unmarshalling Sammlungen in jaxb
public class A {
private HashMap<String, B> map;
@XmlElement
private void setB(ArrayList<B> col) {
...
}
private ArrayList<B> getB() {
...
}
}
Beim Versuch, ein XML-Dokument zu dieser Klasse entordnen jaxb mit merke ich, dass statt der setb() -Methode aufrufen und mir die Liste der B Senden Instanzen JaxB ruft tatsächlich getB() auf und fügt der zurückgegebenen Liste die B-Instanzen hinzu. Warum?
Der Grund, dass der Setter aufgerufen werden soll, ist, dass die Liste eigentlich nur ein temporärer Speicher ist, aus dem ich das Kartenfeld erstellen möchte, also dachte ich, es im Setter zu tun.
Danke.
+1 für den Hinweis, wie Jaxb Collections macht, aber dieses Plugin wird nicht helfen. Das ist ein Plugin für den XJC Code Generator, m und ändert nicht das Laufzeitverhalten von JAXB. – skaffman
Ich habe einen alten E-Mail-Thread gelesen, der behauptet, dass dieses Verhalten in JaxB 2.1 behoben wurde. Ich würde erwarten, dass es eine Eigenschaft auf JaxbContext.newInstance (Klassen, * Eigenschaften *) gibt, die das Marshalling-Verhalten steuert, aber ich kann es nicht finden. – Justin