APIdia Launch Partner
Top Description Methods
java.lang.classfile.attribute

public sealed Interface RuntimeInvisibleTypeAnnotationsAttribute

extends Attribute<RuntimeInvisibleTypeAnnotationsAttribute>, ClassElement, MethodElement, FieldElement, CodeElement
permits BoundRuntimeInvisibleTypeAnnotationsAttribute, UnboundRuntimeInvisibleTypeAnnotationsAttribute
Known Direct Implementers
jdk.internal.classfile.impl.BoundAttribute.BoundRuntimeInvisibleTypeAnnotationsAttribute, jdk.internal.classfile.impl.UnboundAttribute.UnboundRuntimeInvisibleTypeAnnotationsAttribute
Annotations
@SuppressWarnings:doclint:reference
Imports
java.lang.annotation.ElementType, .RetentionPolicy, java.lang.classfile.*, .AttributeMapper.AttributeStability, java.lang.reflect.AnnotatedType, java.util.List, jdk.internal.classfile.impl.BoundAttribute, .UnboundAttribute

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.

Since
24
Java Virtual Machine Specification
4.7.21 The RuntimeInvisibleTypeAnnotations Attribute
See Also
Attributes#runtimeInvisibleTypeAnnotations(), java.compiler/javax.lang.model.type.TypeMirror, ElementType#TYPE_PARAMETER, ElementType#TYPE_USE, RetentionPolicy#CLASS

Method Summary

Modifier and TypeMethod and Description
public List<TypeAnnotation>

Returns:

the run-time invisible annotations on uses of types in this structure
annotations
()

Returns the run-time invisible annotations on uses of types in this structure.

public static RuntimeInvisibleTypeAnnotationsAttribute

Returns:

a RuntimeInvisibleTypeAnnotations attribute
of
(List<TypeAnnotation>
the annotations
annotations
)

Returns a RuntimeInvisibleTypeAnnotations attribute.

public static RuntimeInvisibleTypeAnnotationsAttribute

Returns:

a RuntimeInvisibleTypeAnnotations attribute
of
(TypeAnnotation...
the annotations
annotations
)

Returns a RuntimeInvisibleTypeAnnotations attribute.

Inherited from java.lang.classfile.Attribute:
attributeMapperattributeName

Method Detail

annotationsback to summary
public List<TypeAnnotation> annotations()

Returns the run-time invisible annotations on uses of types in this structure.

Returns:List<TypeAnnotation>

the run-time invisible annotations on uses of types in this structure

ofback to summary
public static RuntimeInvisibleTypeAnnotationsAttribute of(List<TypeAnnotation> annotations)

Returns a RuntimeInvisibleTypeAnnotations attribute.

Parameters
annotations:List<TypeAnnotation>

the annotations

Returns:RuntimeInvisibleTypeAnnotationsAttribute

a RuntimeInvisibleTypeAnnotations attribute

Exceptions
IllegalArgumentException:
if the number of annotations exceeds the limit of u2
ofback to summary
public static RuntimeInvisibleTypeAnnotationsAttribute of(TypeAnnotation... annotations)

Returns a RuntimeInvisibleTypeAnnotations attribute.

Parameters
annotations:TypeAnnotation[]

the annotations

Returns:RuntimeInvisibleTypeAnnotationsAttribute

a RuntimeInvisibleTypeAnnotations attribute

Exceptions
IllegalArgumentException:
if the number of annotations exceeds the limit of u2