У меня есть Map<String, String>
.
Первой идеей каждого является преобразование ее в List<Pair<String,String>>
(Pair
, являющийся пользовательским классом).JAXB @XmlAdapter: Карта -> Список адаптеров? (только маршалл)
Я пробовал @XmlAdapter
так:
public class MapPropertiesAdapter extends XmlAdapter<List<Property>, Map<String,String>> { ... }
Но Затмение Moxy, в осущ JAXB я использую, в конечном итоге с ClassCastException
- «не может преобразовать HashMap в коллекцию».
Это преобразование поддерживается JAXB? Или я упустил часть документации, которая объясняет, почему это не так?
PS: Я хотел бы получить XML, как это:
<properties>
<property name="protocol"/>
<property name="marshaller"/>
<property name="unmarshaller"/>
<property name="timeout"/>
...
</properties>
Я получил его, только пришлось использовать промежуточный класс. Также описано в Handle NPE in XMLCompositeObjectMappingNodeValue.marshalSingleValue(XMLCompositeObjectMappingNodeValue.java:161)
Вы когда-нибудь задумывались, чтобы создать библиотеку Java с большим количеством полезных адаптеров? –
Какие изменения должны быть выполнены, если вместо Map у нас есть Map > ??? –
Anand