获取成员变量

获取成员变量

思路

获取Field对象

赋值或获取值

// 赋值
 // 1. 获取Class对象
 Class clazz = Class.forName("com.charley.myreflect4.Student");

// 2. 获取Field对象
Field filed = clazz.getField("name");

// 3. 利用set方法进行赋值
// 3.1 先创建一个Student对象
Student student = (Student) clazz.newInstance(); // Class.newInstance()为过时的方法
// 3.2 有了对象才可以给指定对象进行赋值
filed.set(student, "zhangsan");

System.out.println(student);

// 获取值
// 1. 获取Class对象
Class clazz = Class.forName("com.charley.myreflect4.Student");

// 2. 获取Field对象
Field field = clazz.getDeclaredField("money");

// 3. 取消一下访问检查
field.setAccessible(true);
// 4. 调用get方法获取值
// 4.1 创建一个对象
Student student = (Student) clazz.newInstance();
// 4.2 获取对象的money的值
Object o = field.get(student);

// 5. 打印一下
System.out.println(o);