packagecom.dongl.utils;importorg.dozer.DozerBeanMapper;importorg.springframework.beans.BeansException;importorg.springframework.beans.FatalBeanException;importorg.springframework.util.Assert;importorg.springframework.util.StringUtils;importjava.beans.PropertyDescriptor;importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method;importjava.lang.reflect.Modifier;import java.util.*;/***@authorD-L
* @Classname BeanUtils
* @Version 1.0
* @Description 通过无参数实例化对象和复制属性值的方式
* 完成实体类之间的转换
* 完成map->实体类
* 实体类->map
* 基于Dozer转换对象的类型
* 对bean的特定属性赋值
* @Date 2020/8/5*/
public class BeanUtils extendsorg.springframework.beans.BeanUtils{/*** 持有Dozer单例, 避免重复创建DozerMapper消耗资源.*/
private static DozerBeanMapper dozer = newDozerBeanMapper();/*** 通过无参数实例化目标对象和复制属性,将POJO对象转换成相应的对象
*
*@paramsource 原对象
*@paramtype 目标类型
*@return转换后的对象*/
public static T convert(Object source, Classtype) {
T target=instantiateClass(type);if (source == null) {returntarget;
}
copyProperties(source, target);returntarget;
}/*** 通过无参数实例化目标对象和复制属性,将两个POJO对象按照顺序转换成相应的对象
* 如果原对象有相同的属性 会出现属性值覆盖
*@paramsource1 原对象1
*@paramsource2 原对象2
*@paramtype 目标类型
*@param
*@return返回转换后的对象*/
public static T converts(Object source1, Object source2, Classtype) {
T target=instantiateClass(type);if (source1 == null && source2 == null) {returntarget;
}
copyProperties(source1, target);
copyPr