package com.finance.common.utils; import cn.hutool.core.bean.BeanUtil; import java.util.List; import java.util.stream.Collectors; /** * 继承自 hutool 的BeanUtil,增加了bean转换时自定义转换器的功能 */ public class BeanUtils extends BeanUtil { /** * 将原对象转换成目标对象,对于字段不匹配的字段可以使用转换器处理 * * @param source 原对象 * @param clazz 目标对象的class * @param convert 转换器 * @param 原对象类型 * @param 目标对象类型 * @return 目标对象 */ public static T copyBean(R source, Class clazz, Convert convert) { T target = copyBean(source, clazz); if (convert != null) { convert.convert(source, target); } return target; } /** * 将原对象转换成目标对象,对于字段不匹配的字段可以使用转换器处理 * * @param source 原对象 * @param clazz 目标对象的class * @param 原对象类型 * @param 目标对象类型 * @return 目标对象 */ public static T copyBean(R source, Class clazz){ if (source == null) { return null; } return toBean(source, clazz); } public static List copyList(List list, Class clazz) { if (list == null || list.size() == 0) { return CollUtils.emptyList(); } return copyToList(list, clazz); } public static List copyList(List list, Class clazz, Convert convert) { if (list == null || list.size() == 0) { return CollUtils.emptyList(); } return list.stream().map(r -> copyBean(r, clazz, convert)).collect(Collectors.toList()); } }