Field 中的isAccessible 真正的含义是什么?
2016-07-31 00:43
519 查看
疑惑:isAccessible 在自己的印象中 如果isAccessible 返回false那么认为我们不能访问该反射出的属性值 但是结果总是那么的令人忧伤。。。看具体代码:
示例一:
属性全是public
测试结果
示例二:
属性范围public和private
结果
示例三
属性范围和示例二保持一致,更改反射代码
结果:
结论:
查阅资料发现下面的解释最为靠谱:
isAccessible()值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。
实际上setAccessible是启用和禁用访问安全检查的开关,并不是为true就能访问为false就不能访问
由于JDK的安全检查耗时较多.所以通过setAccessible(true)的方式关闭安全检查就可以达到提升反射速度的目的
示例一:
属性全是public
测试结果
示例二:
属性范围public和private
结果
示例三
属性范围和示例二保持一致,更改反射代码
结果:
结论:
isAccessible()返回false并不是不能访问此属性,而是另外一个意思:
查阅资料发现下面的解释最为靠谱:
isAccessible()值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。
实际上setAccessible是启用和禁用访问安全检查的开关,并不是为true就能访问为false就不能访问
由于JDK的安全检查耗时较多.所以通过setAccessible(true)的方式关闭安全检查就可以达到提升反射速度的目的
相关文章推荐
- struts2表单验证里field-validator type值一共可以取哪些?都什么含义?
- struts2表单验证里field-validator type值一共可以取哪些?都什么含义?
- “我想学编程”的真正含义是什么
- struts2表单验证里field-validator type值一共可以取哪些?都什么含义?
- “我想学编程”的真正含义是什么
- “我想学编程”的真正含义是什么
- struts2表单验证里field-validator type值一共可以取哪些?都什么含义?
- struts2表单验证里field-validator type值一共可以取哪些?都什么含义?
- struts2表单验证里field-validator type值一共可以取哪些?都什么含义?
- pv是什么的真正含义?
- struts2表单验证里field-validator type值一共可以取哪些?都什么含义?
- struts2表单验证里field-validator type值一共可以取哪些?都什么含义?
- UI 真正的含义是什么?
- UI 真正的含义是什么?
- struts2表单验证里field-validator type值一共可以取哪些?都什么含义?
- 真正理解一维数组的数组名的真正含义
- 屏幕左下角的debug信息中GL_verts代表什么含义
- 《疯狂的程序猿》 -- 什么是真正的程序猿?
- js javascript:void(0) 真正含义
- 患者特别喜欢就某一问题展开冗长空谈,看上去“很聪明”,事实上他们未必明白真正含义(转)