Tôi có một số Map<String, String>
.
Ý tưởng đầu tiên mà mọi người có là chuyển đổi nó thành một số List<Pair<String,String>>
(Pair
làm lớp tùy chỉnh).JAXB @XmlAdapter: Bản đồ -> Bộ điều hợp danh sách? (marshall only)
Tôi đã thử một @XmlAdapter
như thế này:
public class MapPropertiesAdapter extends XmlAdapter<List<Property>, Map<String,String>> { ... }
Nhưng Eclipse MOXY, các impl JAXB tôi sử dụng, đã kết thúc với một ClassCastException
- "không thể chuyển đổi HashMap vào bộ sưu tập".
Chuyển đổi này có được JAXB hỗ trợ không? Hoặc tôi đã bỏ qua một số phần tài liệu giải thích tại sao nó không phải là?
PS: tôi muốn để có được XML như thế này:
<properties>
<property name="protocol"/>
<property name="marshaller"/>
<property name="unmarshaller"/>
<property name="timeout"/>
...
</properties>
tôi đã nhận nó, chỉ phải dùng một lớp trung gian. Cũng được mô tả tại Handle NPE in XMLCompositeObjectMappingNodeValue.marshalSingleValue(XMLCompositeObjectMappingNodeValue.java:161)
Bạn đã bao giờ xem xét để tạo ra một thư viện java với rất nhiều adapter hữu ích? –
Những thay đổi sẽ được thực hiện nếu thay vì Map, chúng ta có Map > ??? –
Anand