Ich habe eine Karte mit Listen, die ich zusammenstellen muss. Ich habe XML-Adapter erstellt, aber ich bekomme immer java.util.List is an interface, and JAXB can't handle interfaces.
bei der Erstellung des JAXB-Kontextes. Wie sollte ich eine Map of Lists marshalen?
Dies ist mein Code:
@XmlRootElement(name = "myClass")
public class MyClass {
@XmlJavaTypeAdapter(MapOfListsAdapter.class)
protected Map<Integer, List<Condition>> expectedResults;
Ich habe Adapter MapOfListsAdapater für die Map geschrieben:
public class MapOfListsAdapter extends XmlAdapter<List<MapOfListsEntry>, Map<Integer, List<Condition>>> {
@Override
public List<MapOfListsEntry> marshal(Map<Integer, List<Condition>> v) {...}
@Override
public Map<Integer, List<Condition>> unmarshal(List<MapOfListsEntry> v) {...}
}
MapOfListEntry hat diese JAXB-Anmerkungen:
public class MapOfListsEntry {
@XmlAttribute
private Integer key;
@XmlElementRef
@XmlElementWrapper
private List<Condition> value;