Class AccessibleObject

  • All Implemented Interfaces:
    AnnotatedElement
    Direct Known Subclasses:
    AbstractMethod, Field

    public class AccessibleObject
    extends Object
    implements AnnotatedElement
    AccessibleObject is 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 Detail

      • AccessibleObject

        protected AccessibleObject()
    • 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 prevents IllegalAccessExceptions.
      • setAccessible

        public static void setAccessible​(AccessibleObject[] objects,
                                         boolean flag)
        Attempts to set the accessible flag for all objects in objects. Setting this to true prevents IllegalAccessExceptions.
      • isAnnotationPresent

        public boolean isAnnotationPresent​(Class<? extends Annotation> annotationType)
        Description copied from interface: AnnotatedElement
        Indicates whether or not this element has an annotation with the specified annotation type (including inherited annotations).
        Specified by:
        isAnnotationPresent in interface AnnotatedElement
        Parameters:
        annotationType - the type of the annotation to search for
        Returns:
        true if the annotation exists, false otherwise
      • getDeclaredAnnotations

        public Annotation[] getDeclaredAnnotations()
        Description copied from interface: AnnotatedElement
        Returns, 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:
        getDeclaredAnnotations in interface AnnotatedElement
        Returns:
        an array of annotations declared for this element
      • getAnnotations

        public Annotation[] getAnnotations()
        Description copied from interface: AnnotatedElement
        Returns, 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:
        getAnnotations in interface AnnotatedElement
        Returns:
        an array of all annotations for this element
      • getAnnotation

        public <T extends Annotation> T getAnnotation​(Class<T> annotationType)
        Description copied from interface: AnnotatedElement
        Returns, for this element, the annotation with the specified type, or null if no annotation with the specified type is present (including inherited annotations).
        Specified by:
        getAnnotation in interface AnnotatedElement
        Parameters:
        annotationType - the type of the annotation to search for
        Returns:
        the annotation with the specified type or null