9
私はマーシャルする必要があるリストのマップを持っています。 XMLアダプタを作成しましたが、JAXBコンテキストを作成するときにはjava.util.List is an interface, and JAXB can't handle interfaces.
を取得し続けます。リストのマップをどのようにマーシャリングする必要がありますか?JAXBマーシャリングリストのマップ
これは私のコードです:
@XmlRootElement(name = "myClass")
public class MyClass {
@XmlJavaTypeAdapter(MapOfListsAdapter.class)
protected Map<Integer, List<Condition>> expectedResults;
私は地図のためのアダプタMapOfListsAdapaterを書かれている:
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は、これらのJAXB注釈を持っています
public class MapOfListsEntry {
@XmlAttribute
private Integer key;
@XmlElementRef
@XmlElementWrapper
private List<Condition> value;
のトピックを参照してくださいhttp://stackoverflow.com/questions/818327/jaxb-how-should-i-marshal-complex-nestedデータ構造。あなたが望む解決策があります。 – user219882
私はそれを見ました、ありがとう。アダプターを使用したいのですが? java.util.Listを取得するのはなぜインタフェースですか、そしてJAXBはインタフェースを処理できませんか? – padis