Java反射学习步骤:
1、 什么是反射机制?
2、 获取字节码文件对象(class)
3、 (Consrtuctor)用字节码对象(class) new一个对象
4、 获取和设置字段(Field)对象的值
5、获取指定class的函数(Method)并对其调用
6、反射实例
获取和设置字段(Field)对象的值
package reflect.demo;
/*
* 需求:
* 获取和设置字段对象的值。
* 步骤:
* 1、要有Person对象obj。
* 2、要有字段Field对象
* 3、通过字段对象的set(obj,89)方法设置
* 4、通过字段对象的get(obj)获取。
*
*/
import java.lang.reflect.Field;
publicclass ReflectDemo3 {
publicstaticvoidmain(String[] args) throws Exception {
getFieldDemo();
}
//获取字节码文件中的字段。
public staticvoid getFieldDemo() throwsException {
Class clazz=Class.forName("been.Person");
Field field=null;//clazz.getField("age");//只能获取共有的。
field=clazz.getDeclaredField("age");//获取所有类型的字段
field.setAccessible(true);//对私有字段的访问取消权限检查。暴力访问。
//得到字段对象后,可以获取到字段对象的内容,也可设置该字段的值。
// been.Person p=new been.Person();//参照原先方式类对成员的调用
// p.age=32;
Object obj=clazz.newInstance();//指明是什么类。
field.set(obj, 89);
Object o=field.get(obj);//与p.age一样,要指明是什么类。
System.out.println(o);
}
}