package com.kps.common.utils; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.dozer.DozerBeanMapper; import org.dozer.Mapper; import org.dozer.loader.api.BeanMappingBuilder; import org.dozer.loader.api.TypeMappingOption; import org.dozer.loader.api.TypeMappingOptions; public class DozerMapperUtil{ static Mapper mapper = new DozerBeanMapper(); /** * 将list转换为vo的list * @param source * @param destType * @return */ public static <T, U> List<U> mapList(final List<T> source, final Class<U> destType) { final List<U> dest = new ArrayList<U>(); for (T element : source) { dest.add(mapper.map(element, destType)); } return dest; } //将Collection<E> public static <T, U> Collection<U> mapCollection(final Collection<T> source, final Class<U> destType) { final Collection<U> dest = new ArrayList<>(); for (T element : source) { dest.add(mapper.map(element, destType)); } return dest; } /** * 转换单个vo对象,自动生成目标实例化对象 * @param source * @param destType * @return */ public static <U> U map(final Object source,final Class<U> destType) { return mapper.map(source, destType); } /** * 将source的所有属性拷贝至target,source里没有的字段,target里不覆盖 * @param source * @param target * @return */ public static <U> void map(final Object source, final U target) { DozerBeanMapper mapper = new DozerBeanMapper(); mapper.addMapping(new BeanMappingBuilder() { @Override protected void configure() { mapping(source.getClass(), target.getClass(), new TypeMappingOption[] {TypeMappingOptions.mapNull(false) }); } }); mapper.map(source, target); } }