黑马程序员技术交流社区
标题:
求解答、、、不知道那里错了
[打印本页]
作者:
尚志
时间:
2014-9-21 17:47
标题:
求解答、、、不知道那里错了
package com.itheima;
import java.lang.reflect.Field;
/*
* 3、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.
public void setProperty(Object obj, String propertyName, Object value){
}
* */
public class Test3 {
public static void main(String[] args) {
M obj = new M();
Method method = new Method();
method.setProperty(obj, "propertyName", "你好");
}
}
class Method{
Class c = null;
Field f = null;
Object obj = null;
public void setProperty(Object obj , String propertyName, Object value){
this.obj = obj;
//获取obj对象的字节码
c = obj.getClass();
System.out.println(c);
try {
Field f = c.getDeclaredField(propertyName);
System.out.println(f);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
f.set( obj, value);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class M{
String propertyName = "shangzhipeng";
}
红色字体处出现java.lang.NullPointerException异常,怎么也调不对、、
作者:
尚志
时间:
2014-9-21 22:00
人呢?大神呢?
作者:
尚志
时间:
2014-9-22 08:34
反射,反射、、、
作者:
dftgg
时间:
2014-9-22 15:03
把那段代码 放到第一个try语句里面试下
作者:
张丽丹
时间:
2014-9-22 17:30
没有给成员变量 Field f = null;赋值,Field f = c.getDeclaredField(propertyName); 这个是局部变量
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2