Package java.lang.reflect
Class AccessibleObject
- java.lang.Object
-
- java.lang.reflect.AccessibleObject
-
- All Implemented Interfaces:
AnnotatedElement
- Direct Known Subclasses:
AbstractMethod,Field
public class AccessibleObject extends Object implements AnnotatedElement
AccessibleObjectis the superclass of all member reflection classes (Field, Constructor, Method). AccessibleObject provides the ability to toggle a flag controlling access checks for these objects. By default, accessing a member (for example, setting a field or invoking a method) checks the validity of the access (for example, invoking a private method from outside the defining class is prohibited) and throws IllegalAccessException if the operation is not permitted. If the accessible flag is set to true, these checks are omitted. This allows privileged code, such as Java object serialization, object inspectors, and debuggers to have complete access to objects.- See Also:
Field,Constructor,Method
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAccessibleObject()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends Annotation>
TgetAnnotation(Class<T> annotationType)Returns, for this element, the annotation with the specified type, ornullif no annotation with the specified type is present (including inherited annotations).Annotation[]getAnnotations()Returns, for this element, an array containing all annotations (including inherited annotations).Annotation[]getDeclaredAnnotations()Returns, for this element, all annotations that are explicitly declared (not inherited).booleanisAccessible()Returns true if this object is accessible without access checks.booleanisAnnotationPresent(Class<? extends Annotation> annotationType)Indicates whether or not this element has an annotation with the specified annotation type (including inherited annotations).voidsetAccessible(boolean flag)Attempts to set the accessible flag.static voidsetAccessible(AccessibleObject[] objects, boolean flag)Attempts to set the accessible flag for all objects inobjects.
-
-
-
Method Detail
-
isAccessible
public boolean isAccessible()
Returns true if this object is accessible without access checks.
-
setAccessible
public void setAccessible(boolean flag)
Attempts to set the accessible flag. Setting this to true preventsIllegalAccessExceptions.
-
setAccessible
public static void setAccessible(AccessibleObject[] objects, boolean flag)
Attempts to set the accessible flag for all objects inobjects. Setting this to true preventsIllegalAccessExceptions.
-
isAnnotationPresent
public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
Description copied from interface:AnnotatedElementIndicates whether or not this element has an annotation with the specified annotation type (including inherited annotations).- Specified by:
isAnnotationPresentin interfaceAnnotatedElement- Parameters:
annotationType- the type of the annotation to search for- Returns:
trueif the annotation exists,falseotherwise
-
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()
Description copied from interface:AnnotatedElementReturns, for this element, all annotations that are explicitly declared (not inherited). If there are no declared annotations present, this method returns a zero length array.- Specified by:
getDeclaredAnnotationsin interfaceAnnotatedElement- Returns:
- an array of annotations declared for this element
-
getAnnotations
public Annotation[] getAnnotations()
Description copied from interface:AnnotatedElementReturns, for this element, an array containing all annotations (including inherited annotations). If there are no annotations present, this method returns a zero length array.- Specified by:
getAnnotationsin interfaceAnnotatedElement- Returns:
- an array of all annotations for this element
-
getAnnotation
public <T extends Annotation> T getAnnotation(Class<T> annotationType)
Description copied from interface:AnnotatedElementReturns, for this element, the annotation with the specified type, ornullif no annotation with the specified type is present (including inherited annotations).- Specified by:
getAnnotationin interfaceAnnotatedElement- Parameters:
annotationType- the type of the annotation to search for- Returns:
- the annotation with the specified type or
null
-
-