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