java反射 複製物件
阿新 • • 發佈:2019-01-03
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();
}
}
}