TypeVariable (Java SE 12 & JDK 12 )
Keywords: javax.lang.model.type.TypeVariable interface

Module java.compiler
Package javax.lang.model.type

## Interface TypeVariable

- All Superinterfaces:
    `AnnotatedConstruct`, `ReferenceType`, `TypeMirror`

      public interface TypeVariable
      extends ReferenceType

  Represents a type variable. A type variable may be explicitly declared by a type parameter of a type, method, or constructor. A type variable may also be declared implicitly, as by the capture conversion of a wildcard type argument (see chapter 5 of The Java™ Language Specification).
  Since:
    1.6
  See Also:
    `TypeParameterElement`

- - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `Element` | `asElement()` | Returns the element corresponding to this type variable.
    `TypeMirror` | `getLowerBound()` | Returns the lower bound of this type variable.
    `TypeMirror` | `getUpperBound()` | Returns the upper bound of this type variable.

    - ### Methods declared in interface javax.lang.model.AnnotatedConstruct

      `getAnnotation, getAnnotationMirrors, getAnnotationsByType`

    - ### Methods declared in interface javax.lang.model.type.TypeMirror

      `accept, equals, getKind, hashCode, toString`

- - ### Method Detail

    - #### asElement

          Element asElement()

      Returns the element corresponding to this type variable.
      Returns:
        the element corresponding to this type variable

    - #### getUpperBound

          TypeMirror getUpperBound()

      Returns the upper bound of this type variable.

      If this type variable was declared with no explicit upper bounds, the result is `java.lang.Object`. If it was declared with multiple upper bounds, the result is an intersection type; individual bounds can be found by examining the result's bounds.

      Returns:
        the upper bound of this type variable

    - #### getLowerBound

          TypeMirror getLowerBound()

      Returns the lower bound of this type variable. While a type parameter cannot include an explicit lower bound declaration, capture conversion can produce a type variable with a non-trivial lower bound. Type variables otherwise have a lower bound of `NullType`.
      Returns:
        the lower bound of this type variable