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.