Я хочу преобразовать список элементов внутри моего payaload и преобразовать их в хэш-карту. По сути, у меня есть XML-представление Item со списком ItemID. Каждый ItemID имеет в себе idType. Однако внутри моего класса Item я хочу, чтобы эти идентификаторы ItemID были представлены в виде карты.
HashMap<ItemIDType, ItemID>
Входящая полезная нагрузка будет представлять это как список
<Item>...
<ItemIDs>
<ItemID type="external" id="XYZ"/>
<ItemID type="internal" id="20011"/>
</ItemIDs>
</Item>
, но мне нужен адаптер, который преобразует это в HashMap
"external" => "xyz"
"internal" => "20011"
Я сейчас использую LinkedList
public class MapHashMapListAdapter extends XmlAdapter<LinkedList<ItemID>, Map<ItemIDType, ItemID>> {
public LinkedList<ItemID> marshal(final Map<ItemIDType, ItemID> v) throws Exception { ... }
public Map<ItemIDType, ItemID> unmarshal(final LinkedList<ItemID> v) throws Exception { ... }
}
, но по какой-то причине, когда моя полезная нагрузка конвертируется, он не может преобразовать список в хэш-карту. Входящий LinkedList метода unmarshal - это пустой список. Вы хоть представляете, что я здесь делаю не так? Нужно ли мне создавать здесь свой собственный тип данных для обработки LinkedList?