public static void main(String[] args) {
//通过反射创建对象
Class beanClass = Class.forName("app.test.Student");
Student student= (Student) beanClass.newInstance();
//利用反射将获取字段
Field declaredField = student.getClass().getDeclaredField("age");
Field declaredField2 = student.getClass().getDeclaredField("name");
// 将相关字段访问权限设为可访问
declaredField.setAccessible(true);
declaredField2.setAccessible(true);
declaredField.set(student, "18");
declaredField2.set(student, "xiaoming");
System.out.println(student.toString());
}
getDeclaredField和getField的区别:
- getDeclaredFiled 仅能获取类本身的属性成员(包括私有、共有、保护)
- getField 仅能获取类(及其父类可以自己测试) public属性成员