import java.lang.reflect.Field;
public class DuotaiDemo {
public static void main(String[] args) throws Exception{
/*获取字节码的三种方式:
1.类名.class
2.对象名.getclass
3.Class.forName(className);
*/
//通过反射获取Person对象的变量值
Person p1 = new Person(10,20);
Field field1 = p1.getClass().getDeclaredField("x");//返回的是Person类中的字节码上变量y,
//通过field1对象获取Person的值
System.out.println(field1.get(p1));//用field对象获取相对应--对象--的值
//程序是上面这句话报的错:java.lang.IllegalAccessException这是什么东东????
// 求帅哥赐教啊
Field field2 = p1.getClass().getDeclaredField("y"); //获取y值?
System.out.println(field2.get(p1));
}
}
class Person
{
private int x ;
private int y ;
public Person(int x, int y)
{
super();
this.x = x;
this.y = y;
}
public static void method_1()
{
System.out.println("hha");
}
} |
|