RuntimeInvisibleParameterAnnotationsAttribute (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.lang.classfile.attribute, interface: RuntimeInvisibleParameterAnnotationsAttribute
Keywords: java.lang.classfile.attribute.RuntimeInvisibleParameterAnnotationsAttribute interface

# Interface RuntimeInvisibleParameterAnnotationsAttribute

All Superinterfaces:
  `Attribute<RuntimeInvisibleParameterAnnotationsAttribute>, ClassFileElement, MethodElement`

public sealed interface RuntimeInvisibleParameterAnnotationsAttribute extends Attribute<RuntimeInvisibleParameterAnnotationsAttribute>, MethodElement
Models the `RuntimeInvisibleParameterAnnotations` attribute (JVMS 4.7.19), which stores declaration annotations on the method parameters of this method that are visible to `class` file consumers but are not visible to core reflection.

This attribute only appears on methods, and does not permit multiple instances in a method. It has a data dependency on the constant pool.

The attribute was introduced in the Java SE Platform version 5.0, major version 49.

See Java Virtual Machine Specification:
  4.7.19 The `RuntimeInvisibleParameterAnnotations` Attribute
Since:
  24
See Also:
  - `Attributes.runtimeInvisibleParameterAnnotations()`
  - `ElementType.PARAMETER`
  - `RetentionPolicy.CLASS`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static RuntimeInvisibleParameterAnnotationsAttribute`
  `of(List<List<Annotation>> parameterAnnotations)`
  Returns a `RuntimeInvisibleParameterAnnotations` attribute.
  `List<List<Annotation>>`
  `parameterAnnotations()`
  Returns the list of run-time invisible annotations on the method parameters.

  ### Methods declared in interface Attribute

  `attributeMapper, attributeName`
  Modifier and Type
  Method
  Description
  `AttributeMapper<RuntimeInvisibleParameterAnnotationsAttribute>`
  `attributeMapper()`
  Returns the `AttributeMapper` associated with this attribute.
  `Utf8Entry`
  `attributeName()`
  Returns the name of the attribute.

- ## Method Details

  - ### parameterAnnotations

    List<List<Annotation>> parameterAnnotations()
    Returns the list of run-time invisible annotations on the method parameters. The element at the i'th index corresponds to the annotations on the i'th formal parameter, but note that some synthetic or implicit parameters may be omitted by this list. If a parameter has no annotations, that element is left empty, but is not omitted; thus, the list will never be truncated because trailing parameters are not annotated.
    Returns:
      the list of run-time invisible annotations on the method parameters
    See Also:
      - Java programming language and JVM modeling in core reflection

  - ### of

    static RuntimeInvisibleParameterAnnotationsAttribute of(List<List<Annotation>> parameterAnnotations)
    Returns a `RuntimeInvisibleParameterAnnotations` attribute. The `parameterAnnotations` list should not be truncated, and must have a length equal to the number of formal parameters; elements for unannotated parameters may be empty, but may not be omitted. It may omit some synthetic or implicit parameters.
    Parameters:
      `parameterAnnotations` - a list of run-time invisible annotations for each parameter
    Returns:
      a `RuntimeInvisibleParameterAnnotations` attribute
    Throws:
      `IllegalArgumentException` - if the number of parameters exceeds the limit of `u1`, or the number of annotations on any parameter exceeds the limit of `u2`