日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

BeanUtils工具類

作者:她丶如月中來 更新時間: 2022-07-18 編程語言

BeanUtils工具類轉換

在日常開發中經常會遇到對象轉換,最常用的對象轉換工具就是BeanUtils,也就是使用BeanUtils.copyProperties(Object source, Object target)方法進行轉換。為了使用更方便,因為對BeanUtils進行一個簡單的封裝,實現BeanUtils對泛型的轉換。這里封裝了一個叫ConvertUtils的類,代碼如下:

/**
 * @Author: Greyfus
 * @Create: 2022-05-11 10:25
 * @Version:
 * @Description:
 */
package vgc.itp.rtm.sop.pojo.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class ConvertUtils {

    private static Logger LOG = LoggerFactory.getLogger(ConvertUtils.class);

    private ConvertUtils() {

    }

    public static <S, T> T convert(S sourceObject, Class<T> targetClass) {
        if (Objects.isNull(sourceObject)) {
            return null;
        }
        T targetObject = null;
        try {
            targetObject = targetClass.newInstance();
        } catch (Exception e) {
            LOG.error("object convert error : {}", e.getMessage());
        }
        BeanUtils.copyProperties(sourceObject, targetObject);
        return targetObject;
    }

    public static <S, T> ArrayList<T> convertList(List<S> sourceList,Class<T> targetClass) {
        if (CollectionUtils.isEmpty(sourceList)) {
            return null;
        }
        ArrayList<T> targetList = new ArrayList<>();
        for (int index = 0; index < sourceList.size(); index++) {
            T targetObject = null;
            try {
                targetObject = targetClass.newInstance();
            } catch (Exception e) {
                LOG.error("object convert error : {}", e.getMessage());
            }
            BeanUtils.copyProperties(sourceList.get(index),targetObject);
            targetList.add(targetObject);
        }
        return targetList;
    }
}

ConvertUtils類實現對單個對象和List的轉換。使用也非常簡單,比如有一個Model對象需要轉換為VehicleModel對象,那么只需要

ConvertUtils.convertList(model, VehicleModel.class);//即可實現model對象轉換為VehicleModel

對于List的轉換也是如此,只需要調用ConvertUtils.convertList()方法即可,比如將一個l類型為List的 vehileList轉為List類型的對象,只需要

ConvertUtils.convertList(vehileList, SopVhicle.class);

之前一直在找直接將整個List對象轉換的方法,但是BeanUtils.copyProperties并支持整個List對象的轉換,所以只能遍歷List,單個轉換。

原文鏈接:https://blog.csdn.net/qq_43600166/article/details/125055077

欄目分類
最近更新