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

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