Annotation Interface Advice.FieldGetterHandle

Enclosing class:
Advice

@Documented @Retention(RUNTIME) @Target(PARAMETER) public static @interface Advice.FieldGetterHandle

Indicates that the annotated parameter should be mapped to a java.lang.invoke.MethodHandle representing a field getter.

Setting Advice.FieldValue.value() is optional. If the value is not set, the field value attempts to bind a setter's or getter's field if the intercepted method is an accessor method. Otherwise, the binding renders the target method to be an illegal candidate for binding.

Important: Parameters with this option must not be used when from a constructor in combination with Advice.OnMethodEnter and a non-static field where the this reference is not available.

Important: Don't confuse this annotation with FieldGetterHandle or MemberSubstitution.FieldGetterHandle. This annotation should be used only in combination with Advice.

See Also:
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Returns the type that declares the field that should be mapped to the annotated parameter.
    Returns the name of the field.
  • Element Details

    • value

      String value
      Returns the name of the field.
      Returns:
      The name of the field.
      Default:
      ""
    • declaringType

      Class<?> declaringType
      Returns the type that declares the field that should be mapped to the annotated parameter. If this property is set to void, the field is looked up implicitly within the instrumented class's class hierarchy. The value can also be set to TargetType in order to look up the type on the instrumented type.
      Returns:
      The type that declares the field, void if this type should be determined implicitly or TargetType for the instrumented type.
      Default:
      void.class