java反射 复制对象

import java.lang.reflect.Field;

public class ObjectCopyUtil {
    public static Object copyObj(Object obj) throws Exception {
        Class<?> classType = obj.getClass();//获取class对象
        Object objRes = classType.newInstance();//构建目标对象
        for (Field field : classType.getDeclaredFields()) {
            field.setAccessible(true);//设置可访问权限
            Object value = field.get(obj);//利用get方法取obj的值
            field.set(objRes, value);
        }
        return objRes;
    }
}
public class CopyClass {//反射复制对象

    public static void main(String[] args) {
        // TODO Auto-generated method stub
Student s=new Student(123, "撒飒飒");
try {
    Student s2=(Student)ObjectCopyUtil.copyObj(s);
    System.out.println(s2.toString());
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
    }

}

猜你喜欢

转载自blog.csdn.net/qq_42866384/article/details/82154243