赞
踩
- import org.apache.commons.beanutils.BeanUtils;
-
- import java.lang.reflect.InvocationTargetException;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.function.Supplier;
-
- /**
- * 转换对象工具
- *
- * @author zj
- * @date 2022/06/14 17:12
- **/
- public class CustomBeanConvertUtils extends BeanUtils {
-
- public static <S, T> T convertTo(S source, Supplier<T> targetSupplier) throws InvocationTargetException, IllegalAccessException {
- return convertTo(source, targetSupplier, null);
- }
-
- /**
- * 转换对象
- *
- * @param source 源对象
- * @param targetSupplier 目标对象供应方
- * @param callBack 回调方法
- * @param <S> 源对象类型
- * @param <T> 目标对象类型
- * @return 目标对象
- */
- public static <S, T> T convertTo(S source, Supplier<T> targetSupplier, ConvertCallBack<S, T> callBack) throws InvocationTargetException, IllegalAccessException {
- if (null == source || null == targetSupplier) {
- return null;
- }
-
- T target = targetSupplier.get();
- copyProperties(source, target);
- if (callBack != null) {
- callBack.callBack(source, target);
- }
- return target;
- }
-
- public static <S, T> List<T> convertListTo(List<S> sources, Supplier<T> targetSupplier) throws InvocationTargetException, IllegalAccessException {
- return convertListTo(sources, targetSupplier, null);
- }
-
- /**
- * 转换对象
- *
- * @param sources 源对象list
- * @param targetSupplier 目标对象供应方
- * @param callBack 回调方法
- * @param <S> 源对象类型
- * @param <T> 目标对象类型
- * @return 目标对象list
- */
- public static <S, T> List<T> convertListTo(List<S> sources, Supplier<T> targetSupplier, ConvertCallBack<S, T> callBack) throws InvocationTargetException, IllegalAccessException {
- if (null == sources || null == targetSupplier) {
- return null;
- }
-
- List<T> list = new ArrayList<>(sources.size());
- for (S source : sources) {
- T target = targetSupplier.get();
- copyProperties(source, target);
- if (callBack != null) {
- callBack.callBack(source, target);
- }
- list.add(target);
- }
- return list;
- }
-
- /**
- * 回调接口
- *
- * @param <S> 源对象类型
- * @param <T> 目标对象类型
- */
- @FunctionalInterface
- public interface ConvertCallBack<S, T> {
- void callBack(S t, T s);
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。