黑马程序员技术交流社区
标题:
反射入门2_获得字段
[打印本页]
作者:
游呤人
时间:
2015-7-16 01:28
标题:
反射入门2_获得字段
本帖最后由 游呤人 于 2015-7-16 01:31 编辑
在获得了字节码和构造器之后我们应该获得该类的成员变量了
Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权限。
反射的字段可能是一个类(静态)字段或实例字段。
那么如何获取呢?
Field:getDeclaredField(String name)| {getField(String name) 只能获得公共成员变量 }
Field[]:getDeclaredFields() | { getFields() 只能获得公共成员变量数组 }
赋值 : void Field.set(Object obj, Object value) //参数obj 表示要赋值的实例, value表示该值
私有变量不能直接访问,但是可以通过设置父类的
public void setAccessible(boolean flag)来改变语法检查
public class FieldDome {
public static void main(String[] args) throws Exception{
Class clazz = Class.forName("com.refect.Student");
Constructor<Student> con = clazz.getDeclaredConstructor(String.class,
int.class, int.class, int.class);
Object obj=con.newInstance("张三",90,100,100);
// Properties
Field name = clazz.getDeclaredField("age");
name.setAccessible(true);
name.set(obj, 13);
System.out.println(obj);
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2