子类copy 父类的属性值

来源:互联网 发布:java笔试题 编辑:程序博客网 时间:2024/05/21 17:23
import com.alibaba.fastjson.util.DeserializeBeanInfo;import com.alibaba.fastjson.util.FieldInfo;import com.alibaba.fastjson.util.TypeUtils;import java.util.List;/** * 拷贝工具类 * */public class CopyUtil {    public static <B, S extends B> void copy(B bo, S so) throws IllegalAccessException {        try {            Class bc = bo.getClass();            if (bo == null || so == null) {                return;            }            DeserializeBeanInfo deserializeBeanInfo = DeserializeBeanInfo.computeSetters(so.getClass());            List<FieldInfo> getters = TypeUtils.computeGetters(bo.getClass(), null);            List<FieldInfo> setters = deserializeBeanInfo.getFieldList();            Object v;            FieldInfo getterfield;            FieldInfo setterfidld;            for (int j = 0; j < getters.size(); j++) {                getterfield = getters.get(j);                for (int i = 0; i < setters.size(); i++) {                    setterfidld = setters.get(i);                    if (setterfidld.getName().compareTo(getterfield.getName()) == 0) {                        v = getterfield.getMethod().invoke(bo);                        setterfidld.getMethod().invoke(so, v);                        break;                    }                }            }        } catch (Exception ex) {            ex.printStackTrace();        }    }}
0 0