对象转换工具类
package com.yjp.util;
import com.github.dozermapper.core.DozerBeanMapperBuilder;
import com.github.dozermapper.core.Mapper;
import com.github.dozermapper.core.MappingException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.Assert;
import java.lang.reflect.Method;
import java.util.*;
public class ObjectMapperUtils {
public static Logger logger = LoggerFactory.getLogger(ObjectMapperUtils2.class);
private static final Mapper mapper = DozerBeanMapperBuilder.buildDefault();
public static <T, S> T convert(S source, T target) throws MappingException {
if (source == null) {
return null;
}
Assert.notNull(target, "target instance required");
mapper.map(source, target);
return target;
}
public static <T, S> T convert(S source, Class<T> targetClass) throws MappingException {
if (source == null) {
return null;
}
Assert.notNull(targetClass, "targetClass required");
T target = mapper.map(source, targetClass);
return target;
}
public static <T, S> List<T> convert(List<S> source, Class<T> targetClass) throws MappingException {
if (source == null) {
return null;
}
List<T> targetList = new ArrayList<T>();
Iterator<S> iterator = source.iterator();
while (iterator.hasNext()) {
T target = mapper.map(iterator.next(), targetClass);
targetList.add(target);
}
return targetList;
}
public static Map<String, Object> objectToMap(Object javaBean) throws Exception {
Map<String, Object> map = new HashMap<>();
Method[] methods = javaBean.getClass().getMethods();
for (Method method : methods) {
if (method.getName().startsWith("get")) {
String field = method.getName();
field = field.substring(field.indexOf("get") + 3);
field = field.toLowerCase().charAt(0) + field.substring(1);
Object value = method.invoke(javaBean, (Object[]) null);
map.put(field, value);
}
}
return map;
}
}