我创建了以下类来将Map<String, DynamicTarget>
映射到DynamicTarget[]
:
class DynamicTargetMapAdapter extends XmlAdapter<DynamicTarget[], Map<String, DynamicTarget>> {
public DynamicTarget[] marshal(Map<String, DynamicTarget> arg0) throws Exception {
DynamicTarget[] mapElements = new DynamicTarget[arg0.size()];
int i = 0;
for (DynamicTarget d : arg0.values()) mapElements[i++] = d;
return mapElements;
}
public Map<String, DynamicTarget> unmarshal(DynamicTarget[] arg0) throws Exception {
Map<String, DynamicTarget> r = new HashMap<String, DynamicTarget>();
for (DynamicTarget d : arg0) r.put(d.getName(), d);
return r;
}
}
结果如下:
<dynamicTargets>
<item>
...
</item>
<item>
...
</item>
<item>
...
</item>
</dynamicTargets>
但这是我想要实现的目标:
<dynamicTargets>
<target>
...
</target>
<target>
...
</target>
<target>
...
</target>
</dynamicTargets>
我需要做些什么来获得所需的输出?