依赖包
import com.github.pagehelper.PageInfo;
import org.springframework.beans.BeanUtils;
import java.util.List;
import java.util.function.Supplier;
import java.util.stream.Collectors;
Bean集合复制工具类
/**
* Bean集合复制工具类
*/
public class BeanUtilsPlus extends BeanUtils {
/**
* 转换对象 list
* @param sources 源对象list
* @param targetSupplier 目标对象供应方 new
* @param <S> 源对象类型
* @param <T> 目标对象类型
* @return 目标对象list
*/
public static <S, T> List<T> copyListProperties(List<S> sources, Supplier<T> targetSupplier) {
if (null == sources || null == targetSupplier) {
return null;
}
return sources.stream().map(s -> {
T target = targetSupplier.get();
copyProperties(s, target);
return target;
}).collect(Collectors.toList());
}
/**
* PageHelper对象复制转换PageInfo中的List
* @param sources 数据对对应的实体Page对象
* @param target 复制之后的对象
* @param <S> 数据库对象实体类
* @param <T> 目标对象类型(VO)
* @return 转换后的pageInfo
*/
public static <S,T> PageInfo<T> copyPageInfo(PageInfo<S> sources,PageInfo<T> target,Supplier<T> targetSupplier){
// 复制外层
BeanUtils.copyProperties(sources, target);
target.setList(copyListProperties(sources.getList(), targetSupplier));
return target;
}
/**
* 转换单个对象并返回
* @param sources
* @param target
* @param <S>
* @param <T>
* @return
*/
public static <S, T> T copySingleProperties(S sources, T target) {
if (null == sources || null == target) {
return null;
}
copyProperties(sources, target);
return target;
}
}