Map<String, String>
var.
Herkesin sahip olduğu ilk fikir, onu List<Pair<String,String>>
(özel bir sınıf olmak üzere Pair
) haline getirmektir.JAXB @XmlAdapter: Harita -> Adaptör listesi? (yalnızca marshall)
Böyle bir @XmlAdapter
denedim:
public class MapPropertiesAdapter extends XmlAdapter<List<Property>, Map<String,String>> { ... }
Ama Eclipse Moxy, kullandığım JAXB impl, bir ClassCastException
ile sona erdi - "Koleksiyonuna HashMap dönüştürmek olamaz".
Bu dönüştürmeyi JAXB tarafından desteklenen midir? Ya da neden olmadığını açıklayan bazı dokümantasyon bölümlerini gözden kaçırdım mı?
Not: Böyle XML almak istedim:
<properties>
<property name="protocol"/>
<property name="marshaller"/>
<property name="unmarshaller"/>
<property name="timeout"/>
...
</properties>
Anladım, sadece bir ara sınıf kullanmak zorunda kaldı. Ayrıca yerine List
için Map
uyarlamak Handle NPE in XMLCompositeObjectMappingNodeValue.marshalSingleValue(XMLCompositeObjectMappingNodeValue.java:161)
Hiç kullanışlı adaptörleri bir sürü bir java kütüphanesi oluşturmak için düşündünüz mü? –
Harita yerine, > var mı ??? –
Anand