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.