我可以将数组映射到复杂类型,如此link中的一个答案中所指定的那样。但是,我的应用程序包含500多个类,并且逐个识别和映射这些类将非常耗时。我正在尝试构建一个可以进行此转换的通用方法。例如,可以使用以下方法实现复杂类型到数组。我正在寻找进行逆向操作的方法 -
public <T> T map(Object srcObj, Class<?> destClass, String mapId) {
if (srcObj == null) {
return null;
}
if (srcObj.getClass().isArray()) {
return (T) mapArrayToArray((Object[]) srcObj, destClass);
}
return (T) dozerBeanMapper.map(srcObj, destClass, mapId);
}
private Object mapArrayToArray(Object[] srcArray, Class<?> destClass) {
Class<?> componentType = destClass.getComponentType();
Object resultArray = Array.newInstance(componentType, srcArray.length);
for (int i = 0; i < srcArray.length; i++) {
Object resultItem = this.map(srcArray[i], componentType);
Array.set(resultArray, i, resultItem);
}
return resultArray;
}