黑马程序员技术交流社区
标题:
关于反射的基础题,写一个方法改变private修饰的值
[打印本页]
作者:
chen_32768
时间:
2014-11-25 23:31
标题:
关于反射的基础题,写一个方法改变private修饰的值
1、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.
public void setProperty(Object obj, String propertyName, Object value){
}
public class Main {
public static void main(String[] args) throws NoSuchFieldException,
SecurityException, IllegalArgumentException, IllegalAccessException {
Person p = new Person();
Person.setProperty(p, "propertyName", "value");
}
}
class Person extends Object {
private String propertyName = "abc";
public String toString() {
return propertyName;
}
public static void setProperty(Object obj, String propertyName, Object value)
throws NoSuchFieldException, SecurityException,
IllegalArgumentException, IllegalAccessException {
//反射
Class c = obj.getClass();
//得到需要的量
Field f = c.getDeclaredField("propertyName");
// Method m = c.getDeclaredMethod(name, parameterTypes);
//语言校验
f.setAccessible(true);
f.set(obj, value);
System.out.println(obj.toString());
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2