您的位置:首页 > Web前端

Field 中的isAccessible 真正的含义是什么?

2016-07-31 00:43 519 查看
疑惑:isAccessible 在自己的印象中 如果isAccessible 返回false那么认为我们不能访问该反射出的属性值 但是结果总是那么的令人忧伤。。。看具体代码:

示例一:

属性全是public



测试结果



示例二:

属性范围public和private



结果



示例三

属性范围和示例二保持一致,更改反射代码

结果:



结论:

isAccessible()返回false并不是不能访问此属性,而是另外一个意思:

查阅资料发现下面的解释最为靠谱:

isAccessible()值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。

实际上setAccessible是启用和禁用访问安全检查的开关,并不是为true就能访问为false就不能访问

由于JDK的安全检查耗时较多.所以通过setAccessible(true)的方式关闭安全检查就可以达到提升反射速度的目的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息