您的位置:首页 > 其它

反射(reflect)--获取字节码文件中的字段

2014-07-06 17:55 246 查看
public class Person {

private int age;
private String name;

public Person(String name,int age) {
super();
this.age = age;
this.name = name;

System.out.println("Person param run..."+this.name+":"+this.age);

}
public Person() {
super();

System.out.println("person run");

}


public class ReflectDemo3 {

/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {

getFieldDemo();

}

/*
* 获取字节码文件中的字段。
*/
public static void getFieldDemo() throws Exception {

Class clazz = Class.forName("cn.itcast.bean.Person");

Field field = null;// clazz.getField("age");//只能获取公有的,

field = clazz.getDeclaredField("age");// 只获取本类,但包含私有。

// 对私有字段的访问取消权限检查。暴力访问。
field.setAccessible(true);

Object obj = clazz.newInstance();//获取Person对象

field.set(obj, 89);//给age赋值

Object o = field.get(obj);//获取Person的age字段

System.out.println(o);

// cn.itcast.bean.Person p = new cn.itcast.bean.Person();
// p.age = 30;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  反射 reflect