前言
对象转换工具类
package com.example.utils;
import org.springframework.beans.BeanUtils;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.util.Assert;
import java.util.List;
import java.util.stream.Collectors;
/**
* 类互转工具类
*
* @author fhx
* @date 2021-08-12 17:05
*/
public class BeanUtil {
/**
* 转换
*
* @param oldClass 原数据
* @param target 转换后的数据
* @return newClass
*/
public static <V> V convert(Object oldClass, Class<V> target) {
Assert.notNull(oldClass, "原对象不能为空");
Assert.notNull(target, "目标对象不能为空");
// 判断是否为空!
try {
// 创建新的对象实例
V newInstance = target.newInstance();
// 把原对象数据拷贝到新的对象
BeanUtils.copyProperties(oldClass, newInstance);
// 返回新对象
return newInstance;
} catch (Exception e) {
return null;
}
}
/**
* 转换list
*
* @param list 原数据
* @param v 转换后的数据类型
* @param <T> 原数据的类型
* @param <V> 转换后的类型
* @return List<V>
*/
public static <T, V> List<V> convert(List<T> list, Class<V> v) {
return list.stream().map(item -> convert(item, v)).collect(Collectors.toList());
}
/**
* Page<T> 转list
*
* @param page 原数据
* @param v 转换后的数据类型
* @param <T> 原数据的类型
* @param <V> 转换后的类型
* @return Page<V>
*/
public static <T, V> Page<V> convert(Page<T> page, Class<V> v) {
List<V> voList = page.stream().map(item -> convert(item, v)).collect(Collectors.toList());
return new PageImpl<>(voList, page.getPageable(), page.getTotalElements());
}
}