# Interface DeclaredType

All Superinterfaces:
  `AnnotatedConstruct, ReferenceType, TypeMirror`

All Known Subinterfaces:
  `ErrorType`

public interface DeclaredType extends ReferenceType
Represents a declared type, either a class type or an interface type. This includes parameterized types such as `java.util.Set<String>` as well as raw types.

While a `TypeElement` represents a class or interface element, a `DeclaredType` represents a class or interface type, the latter being a use (or invocation) of the former. See `TypeElement` for more on this distinction.

The supertypes (both class and interface types) of a declared type may be found using the `Types.directSupertypes(TypeMirror)` method. This returns the supertypes with any type arguments substituted in.

Since:
  1.6
See Also:
  - `TypeElement`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Element`
  `asElement()`
  Returns the element corresponding to this type.
  `TypeMirror`
  `getEnclosingType()`
  Returns the type of the innermost enclosing instance or a `NoType` of kind `NONE` if there is no enclosing instance.
  `List<? extends TypeMirror>`
  `getTypeArguments()`
  Returns the actual type arguments of this type.

  ### Methods declared in interface TypeMirror

  `accept, equals, getAnnotation, getAnnotationMirrors, getAnnotationsByType, getKind, hashCode, toString`
  Modifier and Type
  Method
  Description
  `<R,P> R`
  `accept(TypeVisitor<R,P> v, P p)`
  Applies a visitor to this type.
  `boolean`
  `equals(Object obj)`
  Obeys the general contract of `Object.equals`.
  `<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.
  `TypeKind`
  `getKind()`
  Returns the `kind` of this type.
  `int`
  `hashCode()`
  Obeys the general contract of `Object.hashCode`.
  `String`
  `toString()`
  Returns an informative string representation of this type.

- ## Method Details

  - ### asElement

    Element asElement()
    Returns the element corresponding to this type.
    Returns:
      the element corresponding to this type

  - ### getEnclosingType

    TypeMirror getEnclosingType()
    Returns the type of the innermost enclosing instance or a `NoType` of kind `NONE` if there is no enclosing instance. Only types corresponding to inner classes have an enclosing instance.
    Returns:
      a type mirror for the enclosing type
    See Java Language Specification:
      8.1.3 Inner Classes and Enclosing Instances
      15.9.2 Determining Enclosing Instances

  - ### getTypeArguments

    List<? extends TypeMirror> getTypeArguments()
    Returns the actual type arguments of this type. For a type nested within a parameterized type (such as `Outer<String>.Inner<Number>`), only the type arguments of the innermost type are included.
    Returns:
      the actual type arguments of this type, or an empty list if none