黑马程序员技术交流社区

标题: 关于反射的问题?? [打印本页]

作者: 曹操    时间: 2012-6-6 00:17
标题: 关于反射的问题??
对一个写好的类,后期 想要进行值的修改,有几种方法?

作者: 潘东升    时间: 2012-6-6 00:46
直接反射,如果是java bean还可以使用内省
作者: 刘克方    时间: 2012-6-6 08:59
本帖最后由 刘克方 于 2012-6-6 09:03 编辑

有两种方法:例如定义一个标准的JavaBean,名叫Person,包含属性name,使用反射方式调用setName方法对名称进行设置,不使用setName方法直接使用反射方式对name赋值。
//使用反射的方式创建一个实例、调用构造函数初始化name
   Constructor constructor=pclass.getConstructor(new Class[]{String.class});
   Person person=(Person) constructor.newInstance(new Object[]{"zhansan"});
   
   
   //使用反射方式调用setName方法对名称进行设置
     Method setNameMothod=pclass.getMethod("setName",new Class[]{String.class});
     setNameMothod.invoke(person,"wangwu");
      
      //不使用setName方法直接使用反射方式对name赋值
   Field nameField=pclass.getDeclaredField("name");
   nameField.setAccessible(true);
    nameField.set(person,"lisi");





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2