代码如下,主要利用Spring框架提供的BeanUtils.copyProperties()方法
单个对象的创建
/**
* 创建Dto,并复制属性
*
* @author 喵掌柜
* @date 2021/8/17 13:15
* @param o 被复制的对象
* @param clazz 生成的目标类型的class
* @return T
*/
public static <T> T buildDto(Object o, Class<T> clazz) {
T dto = null;
try {
dto = clazz.newInstance();
BeanUtils.copyProperties(o, dto);
} catch (Exception e) {
e.printStackTrace();
}
return dto;
}
创建集合,需要利用上边的方法
/**
* 创建Dto数组,并且复制属性
*
* @author 喵掌柜
* @date 2021/8/17 13:16
* @param objects 被复制的集合
* @param clazz 生成的目标类型的class
* @return java.util.List<T>
*/
public static <T> List<T> buildDtoList(List objects, Class<T> clazz) {
// return (List<T>)objects.stream().map(o -> buildDto(o, clazz)).collect(Collectors.toList());
List<T> dtoList = new ArrayList<>();
for (Object o : objects) {
dtoList.add(buildDto(o, clazz));
}
return dtoList;
}