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).

See Java Language Specification:
  4.4 Type Variables
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.type.TypeMirror

`accept, equals, getAnnotation, getAnnotationMirrors, getAnnotationsByType, 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
See Java Language Specification:
  4.9 Intersection Types

### 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
See Java Language Specification:
  18.1.3. Bounds