
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.
This interface is also used to represent intersection types.
An intersection type is implicit in a program rather than being
explictly declared. For example, the bound of the type parameter
<T extends Number & Runnable>
is an intersection type. It is represented by a DeclaredType
with Number as its superclass and Runnable as its
lone superinterface.