# Interface AnnotatedWildcardType

All Superinterfaces:
  `AnnotatedElement, AnnotatedType`

public interface AnnotatedWildcardType extends AnnotatedType
`AnnotatedWildcardType` represents the potentially annotated use of a wildcard type argument, whose upper or lower bounds may themselves represent annotated uses of types.

See Java Language Specification:
  4.5.1 Type Arguments of Parameterized Types
Since:
  1.8

- ## Method Summary

  Modifier and Type
  Method
  Description
  `AnnotatedType[]`
  `getAnnotatedLowerBounds()`
  Returns the potentially annotated lower bounds of this wildcard type.
  `AnnotatedType`
  `getAnnotatedOwnerType()`
  Returns the potentially annotated type that this type is a member of, if this type represents a nested type.
  `AnnotatedType[]`
  `getAnnotatedUpperBounds()`
  Returns the potentially annotated upper bounds of this wildcard 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

  - ### getAnnotatedLowerBounds

    AnnotatedType[] getAnnotatedLowerBounds()
    Returns the potentially annotated lower bounds of this wildcard type. If no lower bound is explicitly declared, the lower bound is the type of null. In this case, a zero length array is returned.
    API Note:
      While to date a wildcard may have at most one lower bound, callers of this method should be written to accommodate multiple bounds.
    Returns:
      the potentially annotated lower bounds of this wildcard type or an empty array if no lower bound is explicitly declared.
    See Also:
      - `WildcardType.getLowerBounds()`

  - ### getAnnotatedUpperBounds

    AnnotatedType[] getAnnotatedUpperBounds()
    Returns the potentially annotated upper bounds of this wildcard type. If no upper bound is explicitly declared, the upper bound is unannotated `Object`
    API Note:
      While to date a wildcard may have at most one upper bound, callers of this method should be written to accommodate multiple bounds.
    Returns:
      the potentially annotated upper bounds of this wildcard type
    See Also:
      - `WildcardType.getUpperBounds()`

  - ### 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 `AnnotatedWildcardType`.

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