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

public sealed Interface TypeAnnotation

permits UnboundTypeAnnotation
Known Direct Implementers
jdk.internal.classfile.impl.UnboundAttribute.UnboundTypeAnnotation
Imports
java.lang.classfile.attribute.RuntimeInvisibleTypeAnnotationsAttribute, .RuntimeVisibleTypeAnnotationsAttribute, java.util.List, jdk.internal.classfile.impl.TargetInfoImpl, .UnboundAttribute, .Util

Models a type_annotation structure (JVMS 4.7.20). This model indicates the annotated type within a declaration or expression and the part of the indicated type that is annotated, in addition to what is available in an Annotation.

This model can reconstruct an annotation on a type or a part of a type, given the location of the type_annotation structure in the class file and the definition of the annotation interface.

Two TypeAnnotation objects should be compared using the equals method.

Since
24
See Also
Annotation, RuntimeVisibleTypeAnnotationsAttribute, RuntimeInvisibleTypeAnnotationsAttribute

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static interface
TypeAnnotation.CatchTarget

Indicates that an annotation appears on the i'th type in an exception parameter declaration.

public static interface
TypeAnnotation.EmptyTarget

Indicates that an annotation appears on either the type in a field declaration, the return type of a method, the type of a newly constructed object, or the receiver type of a method or constructor.

public static interface
TypeAnnotation.FormalParameterTarget

Indicates that an annotation appears on the type in a formal parameter declaration of a method, constructor, or lambda expression.

public static interface
TypeAnnotation.LocalVarTarget

Indicates that an annotation appears on the type in a local variable declaration, including a variable declared as a resource in a try-with-resources statement.

public static interface
TypeAnnotation.LocalVarTargetInfo

Indicates a range of code array offsets within which a local variable has a value, and the index into the local variable array of the current frame at which that local variable can be found.

public static interface
TypeAnnotation.OffsetTarget

Indicates that an annotation appears on either the type in an instanceof expression or a new expression, or the type before the :: in a method reference expression.

public static interface
TypeAnnotation.SupertypeTarget

Indicates that an annotation appears on a type in the extends or implements clause of a class or interface declaration.

public static interface
TypeAnnotation.TargetInfo

Specifies which type in a declaration or expression is being annotated.

public static enum
TypeAnnotation.TargetType

The kind of target on which the annotation appears, as defined in JVMS 4.7.20.1.

public static interface
TypeAnnotation.ThrowsTarget

Indicates that an annotation appears on the i'th type in the throws clause of a method or constructor declaration.

public static interface
TypeAnnotation.TypeArgumentTarget

Indicates that an annotation appears either on the i'th type in a cast expression, or on the i'th type argument in the explicit type argument list for any of the following: a new expression, an explicit constructor invocation statement, a method invocation expression, or a method reference expression.

public static interface
TypeAnnotation.TypeParameterBoundTarget

Indicates that an annotation appears on the i'th bound of the j'th type parameter declaration of a generic class, interface, method, or constructor.

public static interface
TypeAnnotation.TypeParameterTarget

Indicates that an annotation appears on the declaration of the i'th type parameter of a generic class, generic interface, generic method, or generic constructor.

public static interface
TypeAnnotation.TypePathComponent

JVMS: Type_path structure identifies which part of the type is annotated, as defined in JVMS 4.7.20.2

Method Summary

Modifier and TypeMethod and Description
public Annotation

Returns:

the annotation applied to the part indicated by targetPath()
annotation
()

Returns the annotation applied to the part indicated by targetPath().

public static TypeAnnotation

Returns:

a type_annotation structure
of
(TypeAnnotation.TargetInfo
which type in a declaration or expression is annotated
targetInfo
,
List<TypeAnnotation.TypePathComponent>
which part of the type is annotated
targetPath
,
Annotation
the annotation
annotation
)

Returns a type_annotation structure.

public TypeAnnotation.TargetInfo

Returns:

information describing precisely which type in a declaration or expression is annotated
targetInfo
()

Returns information describing precisely which type in a declaration or expression is annotated.

public List<TypeAnnotation.TypePathComponent>

Returns:

which part of the type indicated by targetInfo() is annotated
targetPath
()

Returns which part of the type indicated by targetInfo() is annotated.