BeanTransferUtils.java 1.83 KB
package org.nafmii.utils;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @author by zhangbr
 * @date 2020/3/26.
 */
public class BeanTransferUtils {
    public static <T> T transfer(Object text, Class<T> clazz) {
        T t;
        try {
            t = clazz.newInstance();
            org.springframework.beans.BeanUtils.copyProperties(text, t);
            return t;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public static <T> List<T> transferList(List<?> list, Class<T> clazz) {
        if(CollectionUtils.isEmpty(list)){
            return Collections.emptyList();
        }
        List<T> result =new ArrayList<>();
        for(Object each : list) {
            result.add(transfer(each,clazz));
        }
        return  result;
    }

    public static <T> PagedResult<T> toPagedResult(List<T> list, Page page) {
        PagedResult<T> result = new PagedResult<>();
        if (list != null && !list.isEmpty()){
            result.setList(list);
            if (page != null){
                result.setTotal(page.getTotal());
            }else {
                result.setTotal(list.size());
            }
        }
        return result;
    }

    public static <T> PagedResult<T> toPagedResult(List<?> list, Class<T> clazz, Page page) {
        PagedResult<T> result = new PagedResult<>();
        if (page != null){
            result.setTotal(page.getTotal());
        }else {
            if (list != null){
                result.setTotal(list.size());
            }
        }
        if (list != null && !list.isEmpty()){
            result.setList(BeanTransferUtils.transferList(list, clazz));
        }
        return result;
    }
}