Most visited

Recently visited

Added in API level 1

AccessibleObject

public class AccessibleObject
extends Object implements AnnotatedElement

java.lang.Object
   ↳ java.lang.reflect.AccessibleObject
Known Direct Subclasses


AccessibleObject类是Field,Method和Constructor对象的基类。 它提供了将反射对象标记为在使用时禁止默认Java语言访问控制检查的功能。 当使用Fields,Methods或Constructors来设置或获取字段,调用方法,或者创建和初始化类的新实例时,执行对公共,默认(包)访问,受保护和私有成员的访问检查, 分别。

在反射对象中设置 accessible标志允许具有足够权限的复杂应用程序(如Java Object Serialization或其他持久性机制)以通常禁止的方式操作对象。

默认情况下,反射对象 不可访问。

也可以看看:

Summary

Protected constructors

AccessibleObject()

构造函数:仅供Java虚拟机使用。

Public methods

<T extends Annotation> T getAnnotation(Class<T> annotationClass)

如果存在这样的注释,则返回指定类型的此元素的注释,否则返回null。

Annotation[] getAnnotations()

返回此元素上的所有注释。

Annotation[] getDeclaredAnnotations()

返回直接出现在此元素上的所有注释。

boolean isAccessible()

获取此对象的 accessible标志的值。

void setAccessible(boolean flag)

将此对象的 accessible标志设置为指定的布尔值。

static void setAccessible(AccessibleObject[] array, boolean flag)

便捷方法通过一次安全检查为一组对象设置 accessible标志(以提高效率)。

Inherited methods

From class java.lang.Object
From interface java.lang.reflect.AnnotatedElement

Protected constructors

AccessibleObject

Added in API level 1
AccessibleObject ()

构造函数:仅供Java虚拟机使用。

Public methods

getAnnotation

Added in API level 1
T getAnnotation (Class<T> annotationClass)

如果存在这样的注释,则返回指定类型的此元素的注释,否则返回null。

Parameters
annotationClass Class: the Class object corresponding to the annotation type
Returns
T this element's annotation for the specified annotation type if present on this element, else null
Throws
NullPointerException

getAnnotations

Added in API level 1
Annotation[] getAnnotations ()

返回此元素上的所有注释。 (如果此元素没有注释,则返回长度为零的数组。)此方法的调用方可自由修改返回的数组; 它将不会影响返回给其他调用者的数组。

Returns
Annotation[] all annotations present on this element

getDeclaredAnnotations

Added in API level 1
Annotation[] getDeclaredAnnotations ()

返回直接出现在此元素上的所有注释。 与此接口中的其他方法不同,此方法会忽略继承的注释。 (如果此元素上没有注释,则返回长度为零的数组。)此方法的调用方可自由修改返回的数组; 它将不会影响返回给其他调用者的数组。

Returns
Annotation[] All annotations directly present on this element

isAccessible

Added in API level 1
boolean isAccessible ()

获取此对象的 accessible标志的值。

Returns
boolean the value of the object's accessible flag

setAccessible

Added in API level 1
void setAccessible (boolean flag)

将此对象的accessible标志设置为指定的布尔值。 值为true表示反射对象在使用时应禁止Java语言访问检查。 值为false表示反射对象应执行Java语言访问检查。

首先,如果有安全管理器,则其 checkPermission方法被调用并具有 ReflectPermission("suppressAccessChecks")权限。

如果 flagSecurityException则引发 true但可以不更改此对象的可访问性(例如,如果此元素对象是类 ClassConstructor对象)。

一个 SecurityException如果这个对象是提高 Constructor对象类 java.lang.Class ,并且 flag是真的。

Parameters
flag boolean: the new value for the accessible flag
Throws
SecurityException if the request is denied.

也可以看看:

setAccessible

Added in API level 1
void setAccessible (AccessibleObject[] array, 
                boolean flag)

便捷方法通过一次安全检查为一组对象设置 accessible标志(以提高效率)。

首先,如果有安全管理器,则其 checkPermission方法被调用并具有 ReflectPermission("suppressAccessChecks")权限。

如果flagSecurityException则引发true但输入array的任何元素的可访问性不得更改(例如,如果元素对象是类ClassConstructor对象)。 如果出现这种SecurityException,则对于发生异常的元素(排除)的数组元素,对象的可访问性设置为flag ; 超出(并包括)发生异常的元素的元素的可访问性不变。

Parameters
array AccessibleObject: the array of AccessibleObjects
flag boolean: the new value for the accessible flag in each object
Throws
SecurityException if the request is denied.

也可以看看:

Hooray!