Class FieldUtils


  • public class FieldUtils
    extends java.lang.Object
    Utilities for working with Fields by reflection. Adapted and refactored from the dormant [reflect] Commons sandbox component.

    The ability is provided to break the scoping restrictions coded by the programmer. This can allow fields to be changed that shouldn't be. This facility should be used with care.

    Since:
    2.5
    • Constructor Summary

      Constructors 
      Constructor Description
      FieldUtils()
      Deprecated.
      TODO Make private in 4.0.
    • Method Summary

      All Methods Static Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static java.lang.reflect.Field[] getAllFields​(java.lang.Class<?> cls)
      Gets all fields of the given class and its parents (if any).
      static java.util.List<java.lang.reflect.Field> getAllFieldsList​(java.lang.Class<?> cls)
      Gets all fields of the given class and its parents (if any).
      static java.lang.reflect.Field getDeclaredField​(java.lang.Class<?> cls, java.lang.String fieldName)
      Gets an accessible Field by name respecting scope.
      static java.lang.reflect.Field getDeclaredField​(java.lang.Class<?> cls, java.lang.String fieldName, boolean forceAccess)
      Gets an accessible Field by name, breaking scope if requested.
      static java.lang.reflect.Field getField​(java.lang.Class<?> cls, java.lang.String fieldName)
      Gets an accessible Field by name respecting scope.
      static java.lang.reflect.Field getField​(java.lang.Class<?> cls, java.lang.String fieldName, boolean forceAccess)
      Gets an accessible Field by name, breaking scope if requested.
      static java.util.List<java.lang.reflect.Field> getFieldsListWithAnnotation​(java.lang.Class<?> cls, java.lang.Class<? extends java.lang.annotation.Annotation> annotationCls)
      Gets all fields of the given class and its parents (if any) that are annotated with the given annotation.
      static java.lang.reflect.Field[] getFieldsWithAnnotation​(java.lang.Class<?> cls, java.lang.Class<? extends java.lang.annotation.Annotation> annotationCls)
      Gets all fields of the given class and its parents (if any) that are annotated with the given annotation.
      static java.lang.Object readDeclaredField​(java.lang.Object target, java.lang.String fieldName)
      Reads the named public Field.
      static java.lang.Object readDeclaredField​(java.lang.Object target, java.lang.String fieldName, boolean forceAccess)
      Gets a Field value by name.
      static java.lang.Object readDeclaredStaticField​(java.lang.Class<?> cls, java.lang.String fieldName)
      Gets the value of a static Field by name.
      static java.lang.Object readDeclaredStaticField​(java.lang.Class<?> cls, java.lang.String fieldName, boolean forceAccess)
      Gets the value of a static Field by name.
      static java.lang.Object readField​(java.lang.Object target, java.lang.String fieldName)
      Reads the named public Field.
      static java.lang.Object readField​(java.lang.Object target, java.lang.String fieldName, boolean forceAccess)
      Reads the named Field.
      static java.lang.Object readField​(java.lang.reflect.Field field, java.lang.Object target)
      Reads an accessible Field.
      static java.lang.Object readField​(java.lang.reflect.Field field, java.lang.Object target, boolean forceAccess)
      Reads a Field.
      static java.lang.Object readStaticField​(java.lang.Class<?> cls, java.lang.String fieldName)
      Reads the named public static Field.
      static java.lang.Object readStaticField​(java.lang.Class<?> cls, java.lang.String fieldName, boolean forceAccess)
      Reads the named static Field.
      static java.lang.Object readStaticField​(java.lang.reflect.Field field)
      Reads an accessible static Field.
      static java.lang.Object readStaticField​(java.lang.reflect.Field field, boolean forceAccess)
      Reads a static Field.
      static void removeFinalModifier​(java.lang.reflect.Field field)
      Removes the final modifier from a Field.
      static void removeFinalModifier​(java.lang.reflect.Field field, boolean forceAccess)
      Deprecated.
      As of Java 12, we can no longer drop the final modifier, thus rendering this method obsolete.
      static void writeDeclaredField​(java.lang.Object target, java.lang.String fieldName, java.lang.Object value)
      Writes a public Field.
      static void writeDeclaredField​(java.lang.Object target, java.lang.String fieldName, java.lang.Object value, boolean forceAccess)
      Writes a public Field.
      static void writeDeclaredStaticField​(java.lang.Class<?> cls, java.lang.String fieldName, java.lang.Object value)
      Writes a named public static Field.
      static void writeDeclaredStaticField​(java.lang.Class<?> cls, java.lang.String fieldName, java.lang.Object value, boolean forceAccess)
      Writes a named static Field.
      static void writeField​(java.lang.Object target, java.lang.String fieldName, java.lang.Object value)
      Writes a public Field.
      static void writeField​(java.lang.Object target, java.lang.String fieldName, java.lang.Object value, boolean forceAccess)
      Writes a Field.
      static void writeField​(java.lang.reflect.Field field, java.lang.Object target, java.lang.Object value)
      Writes an accessible Field.
      static void writeField​(java.lang.reflect.Field field, java.lang.Object target, java.lang.Object value, boolean forceAccess)
      Writes a Field.
      static void writeStaticField​(java.lang.Class<?> cls, java.lang.String fieldName, java.lang.Object value)
      Writes a named public static Field.
      static void writeStaticField​(java.lang.Class<?> cls, java.lang.String fieldName, java.lang.Object value, boolean forceAccess)
      Writes a named static Field.
      static void writeStaticField​(java.lang.reflect.Field field, java.lang.Object value)
      Writes a public static Field.
      static void writeStaticField​(java.lang.reflect.Field field, java.lang.Object value, boolean forceAccess)
      Writes a static Field.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FieldUtils

        @Deprecated
        public FieldUtils()
        Deprecated.
        TODO Make private in 4.0.
        FieldUtils instances should NOT be constructed in standard programming.

        This constructor is public to permit tools that require a JavaBean instance to operate.

    • Method Detail

      • getAllFields

        public static java.lang.reflect.Field[] getAllFields​(java.lang.Class<?> cls)
        Gets all fields of the given class and its parents (if any).
        Parameters:
        cls - the Class to query
        Returns:
        an array of Fields (possibly empty).
        Throws:
        java.lang.NullPointerException - if the class is null.
        Since:
        3.2
      • getAllFieldsList

        public static java.util.List<java.lang.reflect.Field> getAllFieldsList​(java.lang.Class<?> cls)
        Gets all fields of the given class and its parents (if any).
        Parameters:
        cls - the Class to query
        Returns:
        a list of Fields (possibly empty).
        Throws:
        java.lang.NullPointerException - if the class is null.
        Since:
        3.2
      • getDeclaredField

        public static java.lang.reflect.Field getDeclaredField​(java.lang.Class<?> cls,
                                                               java.lang.String fieldName)
        Gets an accessible Field by name respecting scope. Only the specified class will be considered.
        Parameters:
        cls - the Class to reflect, must not be null
        fieldName - the field name to obtain.
        Returns:
        the Field object.
        Throws:
        java.lang.NullPointerException - if the class is null.
        java.lang.IllegalArgumentException - if the field name is null, blank, or empty.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • getDeclaredField

        public static java.lang.reflect.Field getDeclaredField​(java.lang.Class<?> cls,
                                                               java.lang.String fieldName,
                                                               boolean forceAccess)
        Gets an accessible Field by name, breaking scope if requested. Only the specified class will be considered.
        Parameters:
        cls - the Class to reflect, must not be null.
        fieldName - the field name to obtain.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method. false will only match public fields.
        Returns:
        the Field object
        Throws:
        java.lang.NullPointerException - if the class is null.
        java.lang.IllegalArgumentException - if the field name is null, blank, or empty.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • getField

        public static java.lang.reflect.Field getField​(java.lang.Class<?> cls,
                                                       java.lang.String fieldName)
        Gets an accessible Field by name respecting scope. Superclasses/interfaces will be considered.
        Parameters:
        cls - the Class to reflect, must not be null.
        fieldName - the field name to obtain.
        Returns:
        the Field object.
        Throws:
        java.lang.NullPointerException - if the class is null.
        java.lang.IllegalArgumentException - if the field name is null, blank, or empty
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • getField

        public static java.lang.reflect.Field getField​(java.lang.Class<?> cls,
                                                       java.lang.String fieldName,
                                                       boolean forceAccess)
        Gets an accessible Field by name, breaking scope if requested. Superclasses/interfaces will be considered.
        Parameters:
        cls - the Class to reflect, must not be null.
        fieldName - the field name to obtain.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method. false will only match public fields.
        Returns:
        the Field object.
        Throws:
        java.lang.NullPointerException - if the class is null.
        java.lang.IllegalArgumentException - if the field name is blank or empty or is matched at multiple places in the inheritance hierarchy.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • getFieldsListWithAnnotation

        public static java.util.List<java.lang.reflect.Field> getFieldsListWithAnnotation​(java.lang.Class<?> cls,
                                                                                          java.lang.Class<? extends java.lang.annotation.Annotation> annotationCls)
        Gets all fields of the given class and its parents (if any) that are annotated with the given annotation.
        Parameters:
        cls - the Class to query.
        annotationCls - the Annotation that must be present on a field to be matched.
        Returns:
        a list of Fields (possibly empty).
        Throws:
        java.lang.NullPointerException - if the class or annotation are null.
        Since:
        3.4
      • getFieldsWithAnnotation

        public static java.lang.reflect.Field[] getFieldsWithAnnotation​(java.lang.Class<?> cls,
                                                                        java.lang.Class<? extends java.lang.annotation.Annotation> annotationCls)
        Gets all fields of the given class and its parents (if any) that are annotated with the given annotation.
        Parameters:
        cls - the Class to query.
        annotationCls - the Annotation that must be present on a field to be matched
        Returns:
        an array of Fields (possibly empty).
        Throws:
        java.lang.NullPointerException - if the class or annotation are null.
        Since:
        3.4
      • readDeclaredField

        public static java.lang.Object readDeclaredField​(java.lang.Object target,
                                                         java.lang.String fieldName)
                                                  throws java.lang.IllegalAccessException
        Reads the named public Field. Only the class of the specified object will be considered.
        Parameters:
        target - the object to reflect, must not be null.
        fieldName - the field name to obtain.
        Returns:
        the value of the field.
        Throws:
        java.lang.NullPointerException - if target is null.
        java.lang.IllegalArgumentException - if fieldName is null, blank or empty, or could not be found.
        java.lang.IllegalAccessException - if the named field is not public
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • readDeclaredField

        public static java.lang.Object readDeclaredField​(java.lang.Object target,
                                                         java.lang.String fieldName,
                                                         boolean forceAccess)
                                                  throws java.lang.IllegalAccessException
        Gets a Field value by name. Only the class of the specified object will be considered.
        Parameters:
        target - the object to reflect, must not be null.
        fieldName - the field name to obtain.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method. false will only match public fields.
        Returns:
        the Field object.
        Throws:
        java.lang.NullPointerException - if target is null.
        java.lang.IllegalArgumentException - if fieldName is null, blank or empty, or could not be found.
        java.lang.IllegalAccessException - if the field is not made accessible.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • readDeclaredStaticField

        public static java.lang.Object readDeclaredStaticField​(java.lang.Class<?> cls,
                                                               java.lang.String fieldName)
                                                        throws java.lang.IllegalAccessException
        Gets the value of a static Field by name. The field must be public. Only the specified class will be considered.
        Parameters:
        cls - the Class to reflect, must not be null.
        fieldName - the field name to obtain.
        Returns:
        the value of the field.
        Throws:
        java.lang.NullPointerException - if the class is null, or the field could not be found.
        java.lang.IllegalArgumentException - if the field name is null, blank, empty, or is not static.
        java.lang.IllegalAccessException - if the field is not accessible
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • readDeclaredStaticField

        public static java.lang.Object readDeclaredStaticField​(java.lang.Class<?> cls,
                                                               java.lang.String fieldName,
                                                               boolean forceAccess)
                                                        throws java.lang.IllegalAccessException
        Gets the value of a static Field by name. Only the specified class will be considered.
        Parameters:
        cls - the Class to reflect, must not be null.
        fieldName - the field name to obtain.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method. false will only match public fields.
        Returns:
        the Field object
        Throws:
        java.lang.NullPointerException - if the class is null, or the field could not be found.
        java.lang.IllegalArgumentException - if the field name is blank or empty, is not static.
        java.lang.IllegalAccessException - if the field is not made accessible
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • readField

        public static java.lang.Object readField​(java.lang.reflect.Field field,
                                                 java.lang.Object target)
                                          throws java.lang.IllegalAccessException
        Reads an accessible Field.
        Parameters:
        field - the field to use.
        target - the object to call on, may be null for static fields.
        Returns:
        the field value
        Throws:
        java.lang.NullPointerException - if the field is null.
        java.lang.IllegalAccessException - if the field is not accessible.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • readField

        public static java.lang.Object readField​(java.lang.reflect.Field field,
                                                 java.lang.Object target,
                                                 boolean forceAccess)
                                          throws java.lang.IllegalAccessException
        Reads a Field.
        Parameters:
        field - the field to use.
        target - the object to call on, may be null for static fields.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method.
        Returns:
        the field value
        Throws:
        java.lang.NullPointerException - if the field is null.
        java.lang.IllegalAccessException - if the field is not made accessible.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission), SecurityManager.checkPermission(java.security.Permission)
      • readField

        public static java.lang.Object readField​(java.lang.Object target,
                                                 java.lang.String fieldName)
                                          throws java.lang.IllegalAccessException
        Reads the named public Field. Superclasses will be considered.
        Parameters:
        target - the object to reflect, must not be null.
        fieldName - the field name to obtain.
        Returns:
        the value of the field.
        Throws:
        java.lang.NullPointerException - if the target is null.
        java.lang.IllegalArgumentException - if the field name is null, blank, empty, or could not be found.
        java.lang.IllegalAccessException - if the named field is not public.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • readField

        public static java.lang.Object readField​(java.lang.Object target,
                                                 java.lang.String fieldName,
                                                 boolean forceAccess)
                                          throws java.lang.IllegalAccessException
        Reads the named Field. Superclasses will be considered.
        Parameters:
        target - the object to reflect, must not be null.
        fieldName - the field name to obtain.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method. false will only match public fields.
        Returns:
        the field value
        Throws:
        java.lang.NullPointerException - if target is null.
        java.lang.IllegalArgumentException - if the field name is null, blank, empty, or could not be found.
        java.lang.IllegalAccessException - if the named field is not made accessible.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • readStaticField

        public static java.lang.Object readStaticField​(java.lang.Class<?> cls,
                                                       java.lang.String fieldName)
                                                throws java.lang.IllegalAccessException
        Reads the named public static Field. Superclasses will be considered.
        Parameters:
        cls - the Class to reflect, must not be null.
        fieldName - the field name to obtain.
        Returns:
        the value of the field.
        Throws:
        java.lang.NullPointerException - if the class is null, or the field could not be found.
        java.lang.IllegalArgumentException - if the field name is null, blank or empty, or is not static.
        java.lang.IllegalAccessException - if the field is not accessible.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • readStaticField

        public static java.lang.Object readStaticField​(java.lang.Class<?> cls,
                                                       java.lang.String fieldName,
                                                       boolean forceAccess)
                                                throws java.lang.IllegalAccessException
        Reads the named static Field. Superclasses will be considered.
        Parameters:
        cls - the Class to reflect, must not be null.
        fieldName - the field name to obtain.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method. false will only match public fields.
        Returns:
        the Field object.
        Throws:
        java.lang.NullPointerException - if the class is null, or the field could not be found.
        java.lang.IllegalArgumentException - if the field name is null, blank or empty, or is not static.
        java.lang.IllegalAccessException - if the field is not made accessible.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • readStaticField

        public static java.lang.Object readStaticField​(java.lang.reflect.Field field)
                                                throws java.lang.IllegalAccessException
        Reads an accessible static Field.
        Parameters:
        field - to read.
        Returns:
        the field value.
        Throws:
        java.lang.NullPointerException - if the field is null.
        java.lang.IllegalArgumentException - if the field is not static.
        java.lang.IllegalAccessException - if the field is not accessible
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • readStaticField

        public static java.lang.Object readStaticField​(java.lang.reflect.Field field,
                                                       boolean forceAccess)
                                                throws java.lang.IllegalAccessException
        Reads a static Field.
        Parameters:
        field - to read.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method.
        Returns:
        the field value.
        Throws:
        java.lang.NullPointerException - if the field is null.
        java.lang.IllegalArgumentException - if the field is not static.
        java.lang.IllegalAccessException - if the field is not made accessible.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • removeFinalModifier

        public static void removeFinalModifier​(java.lang.reflect.Field field)
        Removes the final modifier from a Field.
        Parameters:
        field - to remove the final modifier.
        Throws:
        java.lang.NullPointerException - if the field is null.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        Since:
        3.2
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • removeFinalModifier

        @Deprecated
        public static void removeFinalModifier​(java.lang.reflect.Field field,
                                               boolean forceAccess)
        Deprecated.
        As of Java 12, we can no longer drop the final modifier, thus rendering this method obsolete. The JDK discussion about this change can be found here: https://mail.openjdk.java.net/pipermail/core-libs-dev/2018-November/056486.html
        Removes the final modifier from a Field.
        Parameters:
        field - to remove the final modifier.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method. false will only match public fields.
        Throws:
        java.lang.NullPointerException - if the field is null.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        Since:
        3.3
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • writeDeclaredField

        public static void writeDeclaredField​(java.lang.Object target,
                                              java.lang.String fieldName,
                                              java.lang.Object value)
                                       throws java.lang.IllegalAccessException
        Writes a public Field. Only the specified class will be considered.
        Parameters:
        target - the object to reflect, must not be null.
        fieldName - the field name to obtain.
        value - the new value.
        Throws:
        java.lang.NullPointerException - if target is null.
        java.lang.IllegalArgumentException - if fieldName is null, blank or empty, or could not be found, or value is not assignable.
        java.lang.IllegalAccessException - if the field is not made accessible
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • writeDeclaredField

        public static void writeDeclaredField​(java.lang.Object target,
                                              java.lang.String fieldName,
                                              java.lang.Object value,
                                              boolean forceAccess)
                                       throws java.lang.IllegalAccessException
        Writes a public Field. Only the specified class will be considered.
        Parameters:
        target - the object to reflect, must not be null.
        fieldName - the field name to obtain.
        value - the new value.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method. false will only match public fields.
        Throws:
        java.lang.IllegalArgumentException - if fieldName is null, blank or empty, or could not be found, or value is not assignable
        java.lang.IllegalAccessException - if the field is not made accessible
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • writeDeclaredStaticField

        public static void writeDeclaredStaticField​(java.lang.Class<?> cls,
                                                    java.lang.String fieldName,
                                                    java.lang.Object value)
                                             throws java.lang.IllegalAccessException
        Writes a named public static Field. Only the specified class will be considered.
        Parameters:
        cls - Class on which the field is to be found.
        fieldName - to write.
        value - the new value.
        Throws:
        java.lang.NullPointerException - if cls is null or the field cannot be located.
        java.lang.IllegalArgumentException - if the field name is null, blank, empty, not static, or value is not assignable.
        java.lang.IllegalAccessException - if the field is not public or is final
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • writeDeclaredStaticField

        public static void writeDeclaredStaticField​(java.lang.Class<?> cls,
                                                    java.lang.String fieldName,
                                                    java.lang.Object value,
                                                    boolean forceAccess)
                                             throws java.lang.IllegalAccessException
        Writes a named static Field. Only the specified class will be considered.
        Parameters:
        cls - Class on which the field is to be found.
        fieldName - to write
        value - the new value.
        forceAccess - whether to break scope restrictions using the AccessibleObject#setAccessible(boolean) method. false will only match public fields.
        Throws:
        java.lang.NullPointerException - if cls is null or the field cannot be located.
        java.lang.IllegalArgumentException - if the field name is null, blank, empty, not static, or value is not assignable.
        java.lang.IllegalAccessException - if the field is not made accessible or is final
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • writeField

        public static void writeField​(java.lang.reflect.Field field,
                                      java.lang.Object target,
                                      java.lang.Object value)
                               throws java.lang.IllegalAccessException
        Writes an accessible Field.
        Parameters:
        field - to write.
        target - the object to call on, may be null for static fields.
        value - the new value.
        Throws:
        java.lang.NullPointerException - if the field is null.
        java.lang.IllegalArgumentException - if value is not assignable.
        java.lang.IllegalAccessException - if the field is not accessible or is final.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • writeField

        public static void writeField​(java.lang.reflect.Field field,
                                      java.lang.Object target,
                                      java.lang.Object value,
                                      boolean forceAccess)
                               throws java.lang.IllegalAccessException
        Writes a Field.
        Parameters:
        field - to write.
        target - the object to call on, may be null for static fields
        value - the new value.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method. false will only match public fields.
        Throws:
        java.lang.NullPointerException - if the field is null.
        java.lang.IllegalArgumentException - if value is not assignable.
        java.lang.IllegalAccessException - if the field is not made accessible or is final
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • writeField

        public static void writeField​(java.lang.Object target,
                                      java.lang.String fieldName,
                                      java.lang.Object value)
                               throws java.lang.IllegalAccessException
        Writes a public Field. Superclasses will be considered.
        Parameters:
        target - the object to reflect, must not be null.
        fieldName - the field name to obtain.
        value - the new value.
        Throws:
        java.lang.NullPointerException - if target is null.
        java.lang.IllegalArgumentException - if fieldName is null, blank, empty, or could not be found, or value is not assignable.
        java.lang.IllegalAccessException - if the field is not accessible.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • writeField

        public static void writeField​(java.lang.Object target,
                                      java.lang.String fieldName,
                                      java.lang.Object value,
                                      boolean forceAccess)
                               throws java.lang.IllegalAccessException
        Writes a Field. Superclasses will be considered.
        Parameters:
        target - the object to reflect, must not be null.
        fieldName - the field name to obtain.
        value - the new value.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method. false will only match public fields.
        Throws:
        java.lang.NullPointerException - if target is null.
        java.lang.IllegalArgumentException - if fieldName is null, blank, empty, or could not be found, or value is not assignable.
        java.lang.IllegalAccessException - if the field is not made accessible.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • writeStaticField

        public static void writeStaticField​(java.lang.Class<?> cls,
                                            java.lang.String fieldName,
                                            java.lang.Object value)
                                     throws java.lang.IllegalAccessException
        Writes a named public static Field. Superclasses will be considered.
        Parameters:
        cls - Class on which the field is to be found.
        fieldName - to write.
        value - the new value.
        Throws:
        java.lang.NullPointerException - if target is null.
        java.lang.IllegalArgumentException - if fieldName is null, blank or empty, the field cannot be located or is not static, or value is not assignable.
        java.lang.IllegalAccessException - if the field is not public or is final
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • writeStaticField

        public static void writeStaticField​(java.lang.Class<?> cls,
                                            java.lang.String fieldName,
                                            java.lang.Object value,
                                            boolean forceAccess)
                                     throws java.lang.IllegalAccessException
        Writes a named static Field. Superclasses will be considered.
        Parameters:
        cls - Class on which the field is to be found.
        fieldName - to write.
        value - the new value.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method. false will only match public fields.
        Throws:
        java.lang.NullPointerException - if cls is null or the field cannot be located.
        java.lang.IllegalArgumentException - if fieldName is null, blank or empty, the field not static, or value is not assignable.
        java.lang.IllegalAccessException - if the field is not made accessible or is final.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • writeStaticField

        public static void writeStaticField​(java.lang.reflect.Field field,
                                            java.lang.Object value)
                                     throws java.lang.IllegalAccessException
        Writes a public static Field.
        Parameters:
        field - to write.
        value - the new value.
        Throws:
        java.lang.NullPointerException - if the field is null.
        java.lang.IllegalArgumentException - if the field is not static, or value is not assignable.
        java.lang.IllegalAccessException - if the field is not public or is final.
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)
      • writeStaticField

        public static void writeStaticField​(java.lang.reflect.Field field,
                                            java.lang.Object value,
                                            boolean forceAccess)
                                     throws java.lang.IllegalAccessException
        Writes a static Field.
        Parameters:
        field - to write.
        value - the new value.
        forceAccess - whether to break scope restrictions using the AccessibleObject.setAccessible(boolean) method. false will only match public fields.
        Throws:
        java.lang.NullPointerException - if the field is null.
        java.lang.IllegalArgumentException - if the field is not static, or value is not assignable.
        java.lang.IllegalAccessException - if the field is not made accessible or is final
        java.lang.SecurityException - if an underlying accessible object's method denies the request.
        See Also:
        SecurityManager.checkPermission(java.security.Permission)