Tengo un mapa de listas que necesito ordenar. Creé XML adapater pero sigo recibiendo java.util.List is an interface, and JAXB can't handle interfaces.
al crear el contexto JAXB. ¿Cómo debería alinear el Mapa de listas?referencias de JAXB Mapa de listas
Este es mi código:
@XmlRootElement(name = "myClass")
public class MyClass {
@XmlJavaTypeAdapter(MapOfListsAdapter.class)
protected Map<Integer, List<Condition>> expectedResults;
He escrito adaptador MapOfListsAdapater para el Mapa:
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 tiene estas anotaciones JAXB:
public class MapOfListsEntry {
@XmlAttribute
private Integer key;
@XmlElementRef
@XmlElementWrapper
private List<Condition> value;
vea el tema http://stackoverflow.com/questions/818327/jaxb-how-should-i-marshal-complex-nested -estructuras de datos. Hay la solución que quieres. – user219882
Vi eso, gracias. ¿Qué sucede si quiero usar adaptadores? ¿Por qué obtengo java.util.List es una interfaz, y JAXB no puede manejar las interfaces? – padis