我正在努力使用Dozer映射.我想将
java.util.Map转换为
java.util.List< Code>.我的课程实现如下.
public class A {
private List values;
}
class B {
private Map values;
}
class Code {
private String key;
private String value;
// getter & setter ommitted
}
我的映射如下所示.
A
B
values
values
自定义转换器.
public class ABCustomConverter extends DozerConverter, Map> {
public ABCustomConverter () {
super((Class>) (Class>) List.class, (Class>) (Class>) List.class);
}
@Override
public Map convertTo(List source, Map destination) {
throw new NotImplementedException();
}
@Override
public List convertFrom(Map source, List
destination) {
if (source == null) return null;
List modelList = Lists.newArrayListWithCapacity(source.size());
for (String key : source.keySet()) {
Code model = new Code();
model.setKey(key);
model.setValue(source.get(key));
modelList.add(model);
}
return modelList;
}
}
调用convertForm时,我的自定义转换器始终接收空值.由于某种原因,Dozer尝试从我的java.util.Map中获取键值,并且这会导致转发到我的自定义转换器的null值.但我想将整个地图转发给我的转换器.有人可以解释我如何实现这个自定义映射?