Conversion between Dto and Po (switch auxiliary data to entity class)

package com.zkdj.urlCheck.spring_boot_1.main.java.utils;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 * dto与po转换类
 * @author curry_du
 *
 */
public class TransUtil {
    /**
     * dto2po
     */
    public static  Object  dto2po(Object dto,Object po){
        if(dto==null){
            return null;
        }
        Field[] fields=dto.getClass().getDeclaredFields();
        Method methodSet=null;
        Method methodGet=null;
        for(int i=0;i<fields.length;i++){
            String fieldName=fields[i].getName();
            Class<?> classType=fields[i].getType();
            String setMethod="set"+fieldName.substring(0, 1).toUpperCase()+fieldName.substring(1);
            String getMethod="get"+fieldName.substring(0, 1).toUpperCase()+fieldName.substring(1);
            try {
                methodSet=po.getClass().getMethod(setMethod, classType);
                methodGet=dto.getClass().getMethod(getMethod);
                methodSet.invoke(po, methodGet.invoke(dto));
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return po;
    }
    /**
     * po2dto
     */
    public static void po2dto(Object po,Object dto){
        if(po==null){
            return;
        }
        Field[] fields=po.getClass().getDeclaredFields();
        Method getMethod=null;
        Method setMethod=null;
        for(int i=0;i<fields.length;i++){
            String fieldName=fields[i].getName();
            Class<?> classType=fields[i].getType();
            String getMethodName="get"+fieldName.substring(0, 1).toUpperCase()+fieldName.substring(1);
            String setMethodName="set"+fieldName.substring(0, 1).toUpperCase()+fieldName.substring(1);
            try {
                setMethod=dto.getClass().getMethod(setMethodName, classType);
                getMethod=po.getClass().getMethod(getMethodName);
                setMethod.invoke(dto, getMethod.invoke(po));
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}


//Call method

        Person p = new Person();
        System.out.println("=="+p);
        Object dto2po =TransUtil.dto2po(centerUserBO, p);
        System.out.println(dto2po);

Guess you like

Origin blog.csdn.net/My_SweetXue/article/details/108801618