Represents a type in the Java programming language. Types include primitive types, class and interface types, array types, and type variables. Wildcard type arguments, and the pseudo-type representing the type of
void, are represented by type mirrors as well.
Types may be compared using the utility methods in {@link Types}. There is no guarantee that any particular type will always be represented by the same object.
@author Joseph D. Darcy
@author Scott Seligman
@version 1.4 05/11/17
@see Declaration
@see Types
@since 1.5