# 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`
  Modifier and Type
  Field
  Description
  `static final int`
  `TARGET_CAST`
  The value of type annotation target type `CAST`.
  `static final int`
  `TARGET_CLASS_EXTENDS`
  The value of type annotation target type `CLASS_EXTENDS`.
  `static final int`
  `TARGET_CLASS_TYPE_PARAMETER`
  The value of type annotation target type `CLASS_TYPE_PARAMETER`.
  `static final int`
  `TARGET_CLASS_TYPE_PARAMETER_BOUND`
  The value of type annotation target type `CLASS_TYPE_PARAMETER_BOUND`.
  `static final int`
  `TARGET_CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT`
  The value of type annotation target type `CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT`.
  `static final int`
  `TARGET_CONSTRUCTOR_REFERENCE`
  The value of type annotation target type `CONSTRUCTOR_REFERENCE`.
  `static final int`
  `TARGET_CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT`
  The value of type annotation target type `CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT`.
  `static final int`
  `TARGET_EXCEPTION_PARAMETER`
  The value of type annotation target type `EXCEPTION_PARAMETER`.
  `static final int`
  `TARGET_FIELD`
  The value of type annotation target type `FIELD`.
  `static final int`
  `TARGET_INSTANCEOF`
  The value of type annotation target type `INSTANCEOF`.
  `static final int`
  `TARGET_LOCAL_VARIABLE`
  The value of type annotation target type `LOCAL_VARIABLE`.
  `static final int`
  `TARGET_METHOD_FORMAL_PARAMETER`
  The value of type annotation target type `METHOD_FORMAL_PARAMETER`.
  `static final int`
  `TARGET_METHOD_INVOCATION_TYPE_ARGUMENT`
  The value of type annotation target type `METHOD_INVOCATION_TYPE_ARGUMENT`.
  `static final int`
  `TARGET_METHOD_RECEIVER`
  The value of type annotation target type `METHOD_RECEIVER`.
  `static final int`
  `TARGET_METHOD_REFERENCE`
  The value of type annotation target type `METHOD_REFERENCE`.
  `static final int`
  `TARGET_METHOD_REFERENCE_TYPE_ARGUMENT`
  The value of type annotation target type `METHOD_REFERENCE_TYPE_ARGUMENT`.
  `static final int`
  `TARGET_METHOD_RETURN`
  The value of type annotation target type `METHOD_RETURN`.
  `static final int`
  `TARGET_METHOD_TYPE_PARAMETER`
  The value of type annotation target type `METHOD_TYPE_PARAMETER`.
  `static final int`
  `TARGET_METHOD_TYPE_PARAMETER_BOUND`
  The value of type annotation target type `METHOD_TYPE_PARAMETER_BOUND`.
  `static final int`
  `TARGET_NEW`
  The value of type annotation target type `NEW`.
  `static final int`
  `TARGET_RESOURCE_VARIABLE`
  The value of type annotation target type `RESOURCE_VARIABLE`.
  `static final int`
  `TARGET_THROWS`
  The value of type annotation target type `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`
  Modifier and Type
  Method
  Description
  `default int`
  `size()`
  Returns the size of the target info.
  `TypeAnnotation.TargetType`
  `targetType()`
  Returns the type of the target.

- ## 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