TypeAnnotation.TypeArgumentTarget (Java SE 25 & JDK 25)
Description: declaration: module: java.base, package: java.lang.classfile, interface: TypeAnnotation, interface: TypeArgumentTarget
Keywords: java.lang.classfile.TypeAnnotation.TypeArgumentTarget interface

# Interface TypeAnnotation.TypeArgumentTarget

All Superinterfaces:
  `TypeAnnotation.TargetInfo`

Enclosing interface:
  `TypeAnnotation`

public static sealed interface TypeAnnotation.TypeArgumentTarget extends TypeAnnotation.TargetInfo
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.

Since:
  24
See Also:
  - `TypeAnnotation.TargetInfo.ofTypeArgument(TargetType, Label, int)`
  - `TypeAnnotation.TargetInfo.ofCastExpr(Label, int)`
  - `TypeAnnotation.TargetInfo.ofConstructorInvocationTypeArgument(Label, int)`
  - `TypeAnnotation.TargetInfo.ofConstructorReferenceTypeArgument(Label, int)`
  - `TypeAnnotation.TargetInfo.ofMethodInvocationTypeArgument(Label, int)`
  - `TypeAnnotation.TargetInfo.ofMethodReferenceTypeArgument(Label, int)`

- ## Field Summary

  ### Fields declared in interface TypeAnnotation.TargetInfo

  `TARGET_CAST, TARGET_CLASS_EXTENDS, TARGET_CLASS_TYPE_PARAMETER, TARGET_CLASS_TYPE_PARAMETER_BOUND, TARGET_CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT, TARGET_CONSTRUCTOR_REFERENCE, TARGET_CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT, TARGET_EXCEPTION_PARAMETER, TARGET_FIELD, TARGET_INSTANCEOF, TARGET_LOCAL_VARIABLE, TARGET_METHOD_FORMAL_PARAMETER, TARGET_METHOD_INVOCATION_TYPE_ARGUMENT, TARGET_METHOD_RECEIVER, TARGET_METHOD_REFERENCE, TARGET_METHOD_REFERENCE_TYPE_ARGUMENT, TARGET_METHOD_RETURN, TARGET_METHOD_TYPE_PARAMETER, TARGET_METHOD_TYPE_PARAMETER_BOUND, TARGET_NEW, TARGET_RESOURCE_VARIABLE, TARGET_THROWS`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Label`
  `target()`
  The label right before the `Instruction` corresponding to the cast expression, the new expression, the explicit constructor invocation statement, the method invocation expression, or the method reference expression.
  `int`
  `typeArgumentIndex()`
  For a cast expression, the value of the type_argument_index item specifies which type in the cast operator is annotated.

  ### Methods declared in interface TypeAnnotation.TargetInfo

  `size, targetType`

- ## Method Details

  - ### target

    Label target()
    The label right before the `Instruction` corresponding to the cast expression, the new expression, the explicit constructor invocation statement, the method invocation expression, or the method reference expression.
    Returns:
      the label right before the instruction

  - ### typeArgumentIndex

    int typeArgumentIndex()
    For a cast expression, the value of the type_argument_index item specifies which type in the cast operator is annotated. A type_argument_index value of 0 specifies the first (or only) type in the cast operator. The possibility of more than one type in a cast expression arises from a cast to an intersection type. For an explicit type argument list, the value of the type_argument_index item specifies which type argument is annotated. A type_argument_index value of 0 specifies the first type argument.
    Returns:
      the index into the type arguments