AnnotatedTypeVariable (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.lang.reflect, interface: AnnotatedTypeVariable
Keywords: java.lang.reflect.AnnotatedTypeVariable interface

# Interface AnnotatedTypeVariable

All Superinterfaces:
  `AnnotatedElement, AnnotatedType`

public interface AnnotatedTypeVariable extends AnnotatedType
`AnnotatedTypeVariable` represents the potentially annotated use of a type variable, whose declaration may have bounds which themselves represent annotated uses of types.

See Java Language Specification:
  4.4 Type Variables
Since:
  1.8

- ## Method Summary

  Modifier and Type
  Method
  Description
  `AnnotatedType[]`
  `getAnnotatedBounds()`
  Returns the potentially annotated bounds of this type variable.
  `AnnotatedType`
  `getAnnotatedOwnerType()`
  Returns the potentially annotated type that this type is a member of, if this type represents a nested type.

  ### Methods declared in interface AnnotatedElement

  `getAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresent`
  Modifier and Type
  Method
  Description
  `default <T extends Annotation>
  T[]`
  `getAnnotationsByType(Class<T> annotationClass)`
  Returns annotations that are associated with this element.
  `default <T extends Annotation>
  T`
  `getDeclaredAnnotation(Class<T> annotationClass)`
  Returns this element's annotation for the specified type if such an annotation is directly present, else null.
  `default <T extends Annotation>
  T[]`
  `getDeclaredAnnotationsByType(Class<T> annotationClass)`
  Returns this element's annotation(s) for the specified type if such annotations are either directly present or indirectly present.
  `default boolean`
  `isAnnotationPresent(Class<? extends Annotation> annotationClass)`
  Returns true if an annotation for the specified type is present on this element, else false.

  ### Methods declared in interface AnnotatedType

  `getAnnotation, getAnnotations, getDeclaredAnnotations, getType`
  Modifier and Type
  Method
  Description
  `<T extends Annotation>
  T`
  `getAnnotation(Class<T> annotationClass)`
  Returns this element's annotation for the specified type if such an annotation is present, else null.
  `Annotation[]`
  `getAnnotations()`
  Returns annotations that are present on this element.
  `Annotation[]`
  `getDeclaredAnnotations()`
  Returns annotations that are directly present on this element.
  `Type`
  `getType()`
  Returns the underlying type that this annotated type represents.

- ## Method Details

  - ### getAnnotatedBounds

    AnnotatedType[] getAnnotatedBounds()
    Returns the potentially annotated bounds of this type variable. If no bound is explicitly declared, the bound is unannotated `Object`.
    Returns:
      the potentially annotated bounds of this type variable
    See Also:
      - `TypeVariable.getBounds()`

  - ### getAnnotatedOwnerType

    AnnotatedType getAnnotatedOwnerType()
    Returns the potentially annotated type that this type is a member of, if this type represents a nested type. For example, if this type is `@TA O<T>.I<S>`, return a representation of `@TA O<T>`.

    Returns `null` for an `AnnotatedType` that is an instance of `AnnotatedTypeVariable`.

    Specified by:
      `getAnnotatedOwnerType` in interface `AnnotatedType`
    Returns:
      `null`
    Since:
      9