A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

最好把代码也弄出来看看,方便理解

2 个回复

倒序浏览
得到各个字节码对应的实例对象(class):
        -类名.class
        -对象.getClass()
        -Class.forName("完整类名")

在得到的Class对象里 可调用相应的 getField() / getDeclaredField()   
getConstructor() 方法 ,给相应的参数 就能得到相应的成员变量和构造方法
具体的还要你去看API
回复 使用道具 举报
  1.         public static void main(String[] args) throws Exception {
  2.    
  3.                 //通过calss获取类路径,获取空构造函数       
  4.                 Constructor<?> clazz=Class.forName("itcast.javabean.Person").getConstructor();
  5.                
  6.                 Person person=(Person) clazz.newInstance();//实例化对象
  7.                 //Person person = (Person) Class.forName("itcast.javabean.Person").newInstance();
  8.                
  9.                 Field fieldName = person.getClass().getDeclaredField("name");//获取bean里的对象名

  10.                 fieldName.setAccessible(true);//因为我的对象名定义的是私有的只能强制取出来,就是暴力反射

  11.                 fieldName.set(person, "lizhen");

  12.                 Field fieldAge = person.getClass().getDeclaredField("age");

  13.                 fieldAge.setAccessible(true);

  14.                 fieldAge.set(person, 22);

  15.                 System.out.println(fieldName.get(person));
  16.                 System.out.println(fieldAge.get(person));
  17.                 changeValue(person);
  18.                 System.out.println(person.getName() + person.getAge());

  19.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马