# Interface TypeParameterElement

All Superinterfaces:
  `AnnotatedConstruct, Element`

public interface TypeParameterElement extends Element
Represents a formal type parameter of a generic class, interface, method, or constructor element. A type parameter declares a `TypeVariable`.

Since:
  1.6
See Also:
  - `TypeVariable`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TypeMirror`
  `asType()`
  Returns the type variable corresponding to this type parameter element.
  `List<? extends TypeMirror>`
  `getBounds()`
  Returns the bounds of this type parameter.
  `Element`
  `getEnclosingElement()`
  Returns the generic element of this type parameter.
  `Element`
  `getGenericElement()`
  Returns the generic class, interface, method, or constructor that is parameterized by this type parameter.

  ### Methods declared in interface Element

  `accept, equals, getAnnotation, getAnnotationMirrors, getAnnotationsByType, getEnclosedElements, getKind, getModifiers, getSimpleName, hashCode`
  Modifier and Type
  Method
  Description
  `<R,P> R`
  `accept(ElementVisitor<R,P> v, P p)`
  Applies a visitor to this element.
  `boolean`
  `equals(Object obj)`
  Returns `true` if the argument represents the same element as `this`, or `false` otherwise.
  `<A extends Annotation>
  A`
  `getAnnotation(Class<A> annotationType)`
  Returns this construct's annotation of the specified type if such an annotation is present, else `null`.
  `List<? extends AnnotationMirror>`
  `getAnnotationMirrors()`
  Returns the annotations that are directly present on this construct.
  `<A extends Annotation>
  A[]`
  `getAnnotationsByType(Class<A> annotationType)`
  Returns annotations of the specified type that are associated with this construct.
  `List<? extends Element>`
  `getEnclosedElements()`
  Returns the elements that are, loosely speaking, directly enclosed by this element.
  `ElementKind`
  `getKind()`
  Returns the `kind` of this element.
  `Set<Modifier>`
  `getModifiers()`
  Returns the modifiers of this element, excluding annotations.
  `Name`
  `getSimpleName()`
  Returns the simple (unqualified) name of this element.
  `int`
  `hashCode()`
  Obeys the general contract of `Object.hashCode`.

- ## Method Details

  - ### asType

    TypeMirror asType()
    Returns the type variable corresponding to this type parameter element.
    Specified by:
      `asType` in interface `Element`
    Returns:
      the type variable corresponding to this type parameter element
    See Also:
      - `TypeVariable`

  - ### getGenericElement

    Element getGenericElement()
    Returns the generic class, interface, method, or constructor that is parameterized by this type parameter.
    Returns:
      the generic class, interface, method, or constructor that is parameterized by this type parameter

  - ### getBounds

    List<? extends TypeMirror> getBounds()
    Returns the bounds of this type parameter. These are the types given by the `extends` clause used to declare this type parameter. If no explicit `extends` clause was used, then `java.lang.Object` is considered to be the sole bound.
    Returns:
      the bounds of this type parameter, or an empty list if there are none

  - ### getEnclosingElement

    Element getEnclosingElement()
    Returns the generic element of this type parameter.
    Specified by:
      `getEnclosingElement` in interface `Element`
    Returns:
      the generic element of this type parameter
    See Also:
      - `Elements.getPackageOf(Element)`