类 AccessibleObject
java.lang.Objectjava.lang.reflect.AccessibleObject
描述:
AccessibleObject 类是 Field、Method 和 Constructor 对象的基类。它提供了将反射的对象标记为在使用时取消默认 Java 语言访问控制检查的能力。对于公共成员、默认(打包)访问成员、受保护成员和私有成员,在分别使用 Field、Method 或 Constructor 对象来设置或获取字段、调用方法,或者创建和初始化类的新实例的时候,会执行访问检查。
在反射对象中设置 accessible 标志允许具有足够特权的复杂应用程序(比如 Java Object Serialization 或其他持久性机制)以某种通常禁止使用的方式来操作对象。
构造方法:
protected AccessibleObject()
方法详细
1、public static void setAccessible(AccessibleObject[]array, booleanflag)throws SecurityException
使用单一安全性检查(为了提高效率)为一组对象设置 accessible 标志的便捷方法。accessibleobject
首先,如果存在安全管理器,则在 ReflectPermission("suppressAccessChecks") 权限下调用checkPermission 方法。
如果 flag 为 true,但是不能更改输入 array 的任何元素的可访问性(例如,如果元素对象是Class 类的 Constructor 对象),则会引发 SecurityException。如果发生 SecurityException,对于少于(不包括)发生异常的元素的数组元素,可以将对象的可访问性设置为flag;对于超出(包括)引发异常的元素的那些元素,则不更改其可访问 性。accessibleobject
参数:array - AccessibleObjects 的数组
flag - 每个对象中的 accessible 标志的新
抛出:SecurityException - 如果请求被拒绝。
另请参见:SecurityManager.checkPermission(java.security.Permission),RuntimePermission
2、public void setAccessible(booleanflag) throwsSecurityException
将此对象的 accessible 标志设置为指示的布尔。为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。为 false 则指示反射的对象应该实施 Java 语言访问检查。
首先,如果存在安全管理器,则在ReflectPermission("suppressAccessChecks")权限下调用checkPermission方法。
如果flag为true,并且不能更改此对象的可访问性(例如,如果此元素对象是Class类的Constructor对象),则会引发SecurityException。
如果此对象是java.lang.Class类的Constructor对象,并且flag为 true,则会引发SecurityException。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-49306-1.html
#fx_4walls#