暴力反射
如果一个对象的属性是私有的,常规方法只有通过get()方法获取。如果对象中没有get()方法,此时我们就需要通过暴力反射,关闭属性检测,就能获取属性值了。
public class Test05 {
public static void main(String[] args) throws Exception {
//获取类对象
Class cls = Class.forName("com.reflection.Student");
//通过无参构造创建对象
Student student = (Student) cls.newInstance();
//获取属性
Field age = cls.getDeclaredField("age");
//关闭age的属性检测
age.setAccessible(true);
//获取对象的属性值
int ages = (int) age.get(student);
System.out.println(ages);//22
}
}
class Student {
private int age;
public Student() {
age = 22;
}
}
`