创建一个对象拷贝的工具类
在Spring 开发框架内部提供有一个BeanUJtils工具类,这个工具类有一个最大的特点就是可以直接实现对象的数据的拷贝操作,可是这个拷贝操作不包含有集合数据的拷贝处理。
import org.springframework.beans.BeanUtils;import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;public class DeepBeanUtils extends BeanUtils { // 扩充已有的Bean工具类 新增List集合对象的拷贝处理private DeepBeanUtils() {}/*** 实现List集合对象的拷贝处理* @param sources 原始对象集合* @param target 目标对象集合* @param <S> 源对象类型* @param <T> 目标对象类型* @return 拷贝后的List集合*/public static <S, T> List<T> copyListProperties(List<S> sources, Supplier<T> target) {List<T> list = new ArrayList<>(sources.size()); // 开辟一个新的List集合for (S source : sources) { // 集合迭代T obj = target.get(); // 获取数据copyProperties(source, obj); // 由父类所提供的拷贝方法list.add(obj); // 增加集合数据}return list; // 返回集合}
}