TypeAnnotation.TypeArgumentTarget (Java SE 23 & JDK 23)
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.TargetInfoPREVIEW`

Enclosing interface:
  `TypeAnnotationPREVIEW`

public static sealed interface TypeAnnotation.TypeArgumentTarget extends TypeAnnotation.TargetInfoPREVIEW
`TypeArgumentTarget` is a preview API of the Java platform.
Programs can only use `TypeArgumentTarget` when preview features are enabled.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
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:
  22

- ## Method Summary

  Modifier and Type
  Method
  Description
  `LabelPREVIEW`
  `target()`
  The code array offset of either the bytecode instruction corresponding to the cast expression, the new bytecode instruction corresponding to the new expression, the bytecode instruction corresponding to the explicit constructor invocation statement, the bytecode instruction corresponding to the method invocation expression, or the bytecode instruction corresponding to 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 java.lang.classfile.TypeAnnotation.TargetInfoPREVIEW

  `size, targetType`

- ## Method Details

  - ### target

    LabelPREVIEW target()
    The code array offset of either the bytecode instruction corresponding to the cast expression, the new bytecode instruction corresponding to the new expression, the bytecode instruction corresponding to the explicit constructor invocation statement, the bytecode instruction corresponding to the method invocation expression, or the bytecode instruction corresponding to the method reference expression.
    Returns:
      the code label corresponding to 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