最好用的转换工具类、拷贝工具类
我们都知道在Java开发过程中与用到拷贝对象,转换对象等操作,而且it界也提供了很多优秀的属性复制工具比如spring自带的BeanUtils、hutool的BeanUtil都很实用。用过这两款工具的码友们都知道,spring的BeanUtils没有返回值每次使用都需要new一个目标对象,而hutool的BeanUtil更方便直接把目标对象的Class作为参数,使用时不需要new对象使用起来更方便,但是不能拷贝集合对象。
所以这篇文章基于spring的BeanUtils做一个使用起来更方便的工具类,拿走不谢。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
/**
* @author 雪碧鉴赏师
* @version 1.0
* @date 2022/4/14 15:43
*/
public class TransUtils {
/**
*转换实体对象
* @param source 数据集
* @param tClass 目标Class
* @author 雪碧鉴赏师
* @return 目标类型的对象
*/
public static <R> R transEntity(Object source, Class<R> tClass) {
try {
R rt = tClass.newInstance();
BeanUtils.copyProperties(source, rt);
return rt;
} catch (Exception e) {
return null;
}
}
/**
*转换集合对象
* @param list 集合
* @param clazz 目标Class
* @author 雪碧鉴赏师
* @return 目标类型的集合
*/
public static <R,T> List<R> transList(List<T> list, Class<R> clazz) {
if (list == null) {
return Collections.EMPTY_LIST;
} else {
List<R> rtList = new ArrayList();
Iterator var3 = list.iterator();
while(var3.hasNext()) {
Object next = var3.next();
R target = transEntity(next, clazz);
rtList.add(target);
}
return rtList;
}
}
}