import com.alibaba.fastjson.JSON;
import org.springframework.beans.BeanUtils;
import org.apache.commons.lang3.ObjectUtils;
import java.util.*;
@Slf4j
public class ConverterBeanUtil {
/**
* 对象转换
* @param dto 需要转换的对象
* @param clazz 目标泛型
* @return VO
*/
public static <DTO,VO> VO convert(DTO dto, Class<VO> clazz) {
if (dto == null) {
return null;
}
VO vo = null;
try {
vo = clazz.newInstance();
} catch (Exception e) {
log.error("初始化{}对象失败!", clazz, e);
}
BeanUtils.copyProperties(dto, vo);
return vo;
}
/**
* 批量对象转换 List
* @param param 需要转换的对象
* @param clazz 目标泛型
* @return List<VO>
*/
public static <DTO,VO> List<VO> convert(List<DTO> param, Class<VO> clazz) {
if (ObjectUtils.isEmpty(param)) {
return Collections.EMPTY_LIST;
}
List<VO> voList = new ArrayList<VO>();
for (DTO dto : param) {
voList.add(convert(dto, clazz));
}
return voList;
}
/**
* 批量对象转换 Set
* @param param 需要转换的对象
* @param clazz 目标泛型
* @return Set<VO>
*/
public static <DTO,VO> Set<VO> convert(Set<DTO> param, Class<VO> clazz) {
if (ObjectUtils.isEmpty(param)){
return Collections.EMPTY_SET;
}
Set<VO> voList = new HashSet<VO>();
for (DTO dto : param) {
voList.add(convert(dto, clazz));
}
return voList;
}
/**
* list redis中json对象转相应的list Bean
* @param coll 集合
* @param clazz 转换的泛型
* @return List<VO>
*/
public static <Object,V> List<V> listJsonConvert(List<Object> coll, Class<V> clazz) {
if (ObjectUtils.isEmpty(coll)) {
return Collections.EMPTY_LIST;
}
List<V> voList = new ArrayList<V>();
for (Object var : coll) {
voList.add(JSON.parseObject((String) var, clazz));
}
return voList;
}
}
List对象复制工具
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 简介 存储List数据到本地的方式有很多种,对于不想用sqlite或者其他方式,又或是数据量很少的话,不妨可以试下...
- 自定义超实用Redis工具类(满足对象,list,map等类型) 该工具类,可以存储对象、list,map等各种数...