Annotation Interface Advice.AllArguments

Enclosing class:
Advice

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

Assigns an array containing all arguments of the instrumented method to the annotated parameter. The annotated parameter must be an array type. If the annotation indicates writability, the assigned array must have at least as many values as the instrumented method or an ArrayIndexOutOfBoundsException is thrown.

Important: Don't confuse this annotation with AllArguments annotation. This annotation should be used only in combination with Advice ASM visitor. For method delegation (MethodDelegation.to(...)) use alternative annotation from net.bytebuddy.implementation.bind package.

  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    Determines if a null value should be assigned if the instrumented method does not declare any parameters.
    boolean
    Indicates if it is possible to write to this parameter.
    The typing that should be applied when assigning the arguments.
  • Element Details

    • readOnly

      boolean readOnly

      Indicates if it is possible to write to this parameter. If this property is set to false, the annotated type must be equal to the type declaring the instrumented method if the typing is not also set to Assigner.Typing.DYNAMIC. If this property is set to true, the annotated parameter can be any super type of the instrumented method's declaring type.

      Important: This property must be set to true if the advice method is not inlined.

      Returns:
      true if this parameter is read-only.
      Default:
      true
    • typing

      The typing that should be applied when assigning the arguments.
      Returns:
      The typing to apply upon assignment.
      Default:
      STATIC
    • nullIfEmpty

      boolean nullIfEmpty
      Determines if a null value should be assigned if the instrumented method does not declare any parameters. If this option is set and a value is written to annotated parameter, the operation remains without effect.
      Returns:
      true if a null value should be assigned if the instrumented method does not declare any parameters.
      Default:
      false