# Interface TypeAnnotation.TypePathComponent

Enclosing interface:
  `TypeAnnotation`

public static sealed interface TypeAnnotation.TypePathComponent
JVMS: Type_path structure identifies which part of the type is annotated, as defined in JVMS 4.7.20.2

Since:
  24
See Also:
  - `TypeAnnotation.targetPath()`

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static enum`
`TypeAnnotation.TypePathComponent.Kind`
Type path kind, as defined in JVMS 4.7.20.2

## Field Summary

Fields
Modifier and Type
Field
Description
`static final TypeAnnotation.TypePathComponent`
`ARRAY`
static instance for annotation is deeper in an array type
`static final TypeAnnotation.TypePathComponent`
`INNER_TYPE`
static instance for annotation is deeper in a nested type
`static final TypeAnnotation.TypePathComponent`
`WILDCARD`
static instance for annotation is on the bound of a wildcard type argument of a parameterized type

## Method Summary

Modifier and Type
Method
Description
`static TypeAnnotation.TypePathComponent`
`of(TypeAnnotation.TypePathComponent.Kind typePathKind, int typeArgumentIndex)`
Returns type path component of an annotation.
`int`
`typeArgumentIndex()`
JVMS: type_argument_index If the value of the type_path_kind item is 0, 1, or 2, then the value of the type_argument_index item is 0.
`TypeAnnotation.TypePathComponent.Kind`
`typePathKind()`
The type path kind items from JVMS Table 4.7.20.2-A.

## Field Details

### ARRAY

static final TypeAnnotation.TypePathComponent ARRAY
static instance for annotation is deeper in an array type

### INNER_TYPE

static final TypeAnnotation.TypePathComponent INNER_TYPE
static instance for annotation is deeper in a nested type

### WILDCARD

static final TypeAnnotation.TypePathComponent WILDCARD
static instance for annotation is on the bound of a wildcard type argument of a parameterized type

## Method Details

### typePathKind

TypeAnnotation.TypePathComponent.Kind typePathKind()
The type path kind items from JVMS Table 4.7.20.2-A.

Returns:
  the kind of path element

### typeArgumentIndex

int typeArgumentIndex()
JVMS: type_argument_index If the value of the type_path_kind item is 0, 1, or 2, then the value of the type_argument_index item is 0. If the value of the type_path_kind item is 3, then the value of the type_argument_index item specifies which type argument of a parameterized type is annotated, where 0 indicates the first type argument of a parameterized type.

Returns:
  the index within the type component

### of

static TypeAnnotation.TypePathComponent of(TypeAnnotation.TypePathComponent.Kind typePathKind, int typeArgumentIndex)
Returns type path component of an annotation.

Parameters:
  `typePathKind` - the kind of path element
  `typeArgumentIndex` - the type argument index
Returns:
  type path component of an annotation