1. 程式人生 > >java反射 複製物件

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(); } } }