# Interface RuntimeInvisibleTypeAnnotationsAttribute

All Superinterfaces:
  `Attribute<RuntimeInvisibleTypeAnnotationsAttribute>, ClassElement, ClassFileElement, CodeElement, FieldElement, MethodElement`

public sealed interface RuntimeInvisibleTypeAnnotationsAttribute extends Attribute<RuntimeInvisibleTypeAnnotationsAttribute>, ClassElement, MethodElement, FieldElement, CodeElement
Models the `RuntimeInvisibleTypeAnnotations` attribute (JVMS 4.7.21), which stores type-use annotations for the annotated uses of types in this structure that are visible to `class` file consumers but are not visible to core reflection. Its delivery in the traversal of a `CodeModel` may be toggled by `ClassFile.DebugElementsOption`.

This attribute appears on classes, fields, methods, `Code` attributes, and record components, and does not permit multiple instances in one structure. It has a data dependency on arbitrary indices in the `class` file format, so users must take great care to ensure this attribute is still correct after a `class` file has been transformed.

The attribute was introduced in the Java SE Platform version 8, major version 52.

See Java Virtual Machine Specification:
  4.7.21 The `RuntimeInvisibleTypeAnnotations` Attribute
Since:
  24
See Also:
  - `Attributes.runtimeInvisibleTypeAnnotations()`
  - `TypeMirror`
  - `ElementType.TYPE_PARAMETER`
  - `ElementType.TYPE_USE`
  - `RetentionPolicy.CLASS`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<TypeAnnotation>`
  `annotations()`
  Returns the run-time invisible annotations on uses of types in this structure.
  `static RuntimeInvisibleTypeAnnotationsAttribute`
  `of(TypeAnnotation... annotations)`
  Returns a `RuntimeInvisibleTypeAnnotations` attribute.
  `static RuntimeInvisibleTypeAnnotationsAttribute`
  `of(List<TypeAnnotation> annotations)`
  Returns a `RuntimeInvisibleTypeAnnotations` attribute.

  ### Methods declared in interface Attribute

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

- ## Method Details

  - ### annotations

    List<TypeAnnotation> annotations()
    Returns the run-time invisible annotations on uses of types in this structure.
    Returns:
      the run-time invisible annotations on uses of types in this structure

  - ### of

    static RuntimeInvisibleTypeAnnotationsAttribute of(List<TypeAnnotation> annotations)
    Returns a `RuntimeInvisibleTypeAnnotations` attribute.
    Parameters:
      `annotations` - the annotations
    Returns:
      a `RuntimeInvisibleTypeAnnotations` attribute
    Throws:
      `IllegalArgumentException` - if the number of annotations exceeds the limit of `u2`

  - ### of

    static RuntimeInvisibleTypeAnnotationsAttribute of(TypeAnnotation... annotations)
    Returns a `RuntimeInvisibleTypeAnnotations` attribute.
    Parameters:
      `annotations` - the annotations
    Returns:
      a `RuntimeInvisibleTypeAnnotations` attribute
    Throws:
      `IllegalArgumentException` - if the number of annotations exceeds the limit of `u2`