通过反射获取成员变量,以及对应的值。
下面看一个需求
1.定义一个RefelectPoint对象,里面有两个变量,private x,public y.
2. new一个RefelectPoint对象,初始化这个对象,获取成员变量Y初始化时赋的值,通过反射实现
RefelectPoint.java 类
主要看一下注释:思考如何获取成员变量,如何获取某个对象的该成员变量的值
下面我们用同样的方法,获取成员变量x的值。
因为x是private的。而getField()方法获取的是public类型的成员变量。
那有没有办法获取他的私有变亮呢?答案是有的:使用get DeclareField()方法获取成员变量
这时候,不报找不到成员变量错误了,报Exception in thread "main" java.lang.IllegalAccessException: Class com.RefelectTest can not access a member of class com.RefelectPoint with modifiers "private" 不能通过发射的方式接收RefelectPoint中“private”类型的成员变量
什么意思?因为是私有的,所以不让访问。那有没有办法访问呢?有。既然你有钱,在我面前又晃来晃去不给我,我又想要,那怎么办?只有用暴力的方式了,强抢。
使用fieldX.setAccessible(true);强制设定fieldX这个成员变量是可以访问的
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。