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 Details

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