# 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 java.lang.classfile.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 java.lang.classfile.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