Field:成员变量
1、设置值: void set(Object obj, Object value)
2、获取: void set(Object obj, Object value)
3. 暴力反射: setAccessible(true):
当使用非public修饰的变量时,需要忽略访问权限修饰符的安全检查
public修饰的成员变量示例 public class ReferenceDemo01 {
public static void main(String[] args) throws Exception {
Class cls = Class.forName("cn.test.reference.Student");
Field gender = cls.getField("gender");
//创建Student对象
Student student = new Student();
//设置值
gender.set(student,"female");
//获取值
Object obj = gender.get(student);
System.out.println(obj);
}
}
public class ReferenceDemo01 {
public static void main(String[] args) throws Exception {
Class cls = Class.forName("cn.test.reference.Student");
Field gender = cls.getField("gender");
//创建Student对象
Student student = new Student();
//设置值
gender.set(student,"female");
//获取值
Object obj = gender.get(student);
System.out.println(obj);
}
}
结果显示
非public修饰的成员变量示例
备注:未添加setAccessible,系统会提示.IllegalAccessException安全权限异常
public class ReferenceDemo01 {
public static void main(String[] args) throws Exception {
Class cls = Class.forName("cn.test.reference.Student");
Field name = cls.getDeclaredField("name");
//暴力反射
name.setAccessible(true);
//创建Student对象
Student student = new Student();
//设置值
name.set