当前位置: 首页 > 后端技术 > Java

Javav7列表转换对象类型工具类

时间:2023-04-02 10:41:43 Java

导入org.apache.commons.collections.CollectionUtils;导入org.slf4j.Logger;导入org.slf4j.LoggerFactory;导入org.springframework.beans.BeanUtils;导入org.springframework.beans.BeansException;导入java.util.ArrayList;导入java.util.Collection;导入java.util.Collections;导入java.util.List;公共类ObjectCopyUtils{privatestaticfinalLoggerlogger=LoggerFactory.getLogger(ObjectCopyUtils.class);/***obj转obj**@paramorigin*@paramclazz*@param*@return*/publicstaticTconvert(Objectorigin,Classclazz){Objectdest=null;if(null!=origin){try{dest=clazz.newInstance();copyProperties(目的地,原点);}catch(InstantiationExceptione){dest=null;logger.error("InstantiationExceptiongetBean错误。",e);}赶上(非法访问sExceptione){dest=null;logger.error("IllegalAccessExceptiongetBean错误。",e);}}返回(空!=目标)?(T)目的地:空;}/***列表到列表**@paramsrcList*@paramtargetClazz*@param*@param*@return*/publicstaticListconvert(CollectionsrcList,ClasstargetClazz){if(CollectionUtils.isEmpty(srcList)){返回Collections.emptyList();}T目标=空;尝试{Listdist=newArrayList();for(Ssrc:srcList){//目标类注意必须实现空构造函数target=targetClazz.newInstance();复制属性(目标,源);dist.add(目标);返回距离;}catch(Exceptione){logger.error("复制对象{}的属性时出错:{}",targetClazz.getSimpleName(),JSONUtils.toString(srcList));thrownewIllegalArgumentException("对象"+targetClazz.getSimpleName()+"复制属性出错",e);}}privatestaticvoidcopyProperties(Objectdest,Objectorigin){if(null==origin){dest=null;返回;}尝试{BeanUtils.copyProperties(origin,dest);}catch(BeansExceptione){logger.error("BeansExceptioncopyProperties错误。",e);}}}