Tôi có một bản đồ các danh sách mà tôi cần để sắp xếp. Tôi tạo ra XML adapater nhưng tôi tiếp tục nhận được java.util.List is an interface, and JAXB can't handle interfaces.
khi tạo bối cảnh JAXB. Làm thế nào tôi nên sắp xếp bản đồ của danh sách?JAXB marshaling Bản đồ Danh sách
Đây là mã của tôi:
@XmlRootElement(name = "myClass")
public class MyClass {
@XmlJavaTypeAdapter(MapOfListsAdapter.class)
protected Map<Integer, List<Condition>> expectedResults;
Tôi đã viết bộ chuyển đổi MapOfListsAdapater cho bản đồ:
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 có những chú thích JAXB:
public class MapOfListsEntry {
@XmlAttribute
private Integer key;
@XmlElementRef
@XmlElementWrapper
private List<Condition> value;
Xem chủ đề http://stackoverflow.com/questions/818327/jaxb-how-should-i-marshal-complex-nested -cấu trúc dữ liệu. Có giải pháp bạn muốn. – user219882
Tôi thấy điều đó, cảm ơn. Nếu tôi muốn sử dụng bộ điều hợp thì sao? Tại sao tôi nhận được java.util.List là một giao diện, và JAXB không thể xử lý các giao diện? – padis