java中反射操作私有成员变量
2017-06-09 11:58
309 查看
反射private成员变量(字段)
反射private属性执行流程1. 获取学生类字节码对象
2. 获取学生对象
3. 通过getDeclaredField方法获取私有字段
4. 通过setAccessible让jvm不检查权限
5. 通过set方法设置对象为具体的值
package com.itheima_01;
import java.lang.reflect.Field;
/*
* 通过反射获取私有成员变量并使用
* Field[] getDeclaredFields()
* Field getDeclaredField(String name)
*/
public class ReflectDemo4 {
public static void main(String[] args) throws ReflectiveOperationException {
//获取学生类的字节码对象
Class clazz = Class.forName("com.itheima_01.Student");
//获取学生对象
Object stu = clazz.newInstance();
//获取私有的字段对象
Field f = clazz.getDeclaredField("name");
f.setAccessible(true);//设置反射时取消Java的访问检查,暴力访问
//System.out.println(f);
f.set(stu, "lisi");
Object name = f.get(stu);
System.out.println(name);
}
}
1.1.1 方法总结
Field[] getDeclaredFields() -->暴力反射获取所有字段(包括私有)
Field getDeclaredField(String name) -->
暴力反射获取指定名称字段
void setAccessible(boolean flag) --> 让jvm不检查权限
相关文章推荐
- Java反射操作私有成员变量 Class can not access a member with modifiers "private"
- 黑马程序员--Java基础加强--16.利用反射操作泛型V【通过Constructor反射解析泛型构造方法】【通过Field反射解析泛型成员变量】【个人总结】
- java反射学习--操作私有成员
- Java通过反射访问私有成员变量和私有方法
- java利用反射来调用一个类的私有方法和成员变量
- java 反射机制 读取私有成员变量
- java反射访问私有成员变量
- Java学习笔记_反射_Class.forName()加载并修改一个类的私有成员变量
- java 使用反射机制来获取私有方法和成员变量
- java中反射操作公共成员变量
- 利用反射机制操作私有成员变量(private修饰的变量)
- java 反射修改私有成员变量
- 通过反射,如何操作私有成员变量(取/赋值),如何调用私有方法?
- java中使用反射做一个工具类,来为指定类中的成员变量进行赋值操作,使用与多个类对象的成员变量的赋值。
- Java之反射获取私有成员变量-yellowcong
- Java通过反射设置私有变量
- java中用反射访问私有方法和私有成员[转]
- java中的反射机制——如何访问私有成员的私有方法
- 通过操作地址的方法来访问C++类对象中私有成员变量
- 黑马程序员--Java基础加强--17.利用反射操作泛型VI【泛型类型变量的语义】【GenericDeclaration接口】【泛型接口TypeVariable】【通过Class反射解析泛型类】