Class CachedField

java.lang.Object
groovy.lang.MetaProperty
org.codehaus.groovy.reflection.CachedField
All Implemented Interfaces:
MetaMember

public class CachedField extends MetaProperty
Caches reflection information about a single field for efficient access and modification.

Extends MetaProperty to integrate with the meta-programming framework. Handles lazy field accessibility and provides property-like access to field values.

  • Constructor Details

    • CachedField

      public CachedField(Field field)
      Constructs a CachedField for the given Java field.
      Parameters:
      field - the field to cache reflection information for
  • Method Details

    • getCachedField

      public Field getCachedField()
      Returns the underlying Java Field object, making it accessible if necessary.
      Returns:
      the cached field with accessibility ensured
    • getDeclaringClass

      public Class getDeclaringClass()
      Returns the class that declares this field.
      Returns:
      the declaring class
    • isAnnotationPresent

      public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
      Checks whether the underlying field has the specified annotation. Unlike getCachedField(), this does not trigger accessibility changes.
      Since:
      6.0.0
    • getModifiers

      public int getModifiers()
      Returns the access modifiers.
      Specified by:
      getModifiers in interface MetaMember
      Overrides:
      getModifiers in class MetaProperty
      Returns:
      Modifier.PUBLIC
    • getProperty

      public Object getProperty(Object object)
      Specified by:
      getProperty in class MetaProperty
      Returns:
      the property of the given object
    • setProperty

      public void setProperty(Object object, Object newValue)
      Sets the property on the given object to the new value.
      Specified by:
      setProperty in class MetaProperty
      Parameters:
      object - on which to set the property
      newValue - the new value of the property
    • asAccessMethod

      public MethodHandle asAccessMethod(MethodHandles.Lookup lookup) throws IllegalAccessException
      Creates a method handle that provides getter access to this field via MethodHandles API. Attempts to unreflect the field, automatically making it accessible if needed.
      Parameters:
      lookup - the method handles lookup context
      Returns:
      a method handle providing getter access to this field
      Throws:
      IllegalAccessException - if the field cannot be accessed even with accessibility adjustments