例3:写一个方法设置对象任意权限的属性的值
写一个方法:public void setProperty(Objectobj, String propertyName, Object value){},
此方法可将obj对象中名为propertyName的属性的值设置为value。(这里不知道obj对象的propertyName属性的权限,如果为private,则必须使用反射才能设置,所有才有了以下代码)
public void setProperty(Object obj, String propertyName, Object value) throws Exception {
// 根据对象获取字节码文件对象
Class c = obj.getClass();
// 获取该对象的propertyName成员变量
Field field = c.getDeclaredField(propertyName);
// 取消访问检查
field.setAccessible(true);
// 给对象的成员变量赋值为指定的值
field.set(obj, value);
}