Class Type

java.lang.Object
org.aspectj.org.eclipse.jdt.core.dom.ASTNode
org.aspectj.org.eclipse.jdt.core.dom.Type
Direct Known Subclasses:
AnnotatableType, ArrayType, FormalBinding, IntersectionType, ParameterizedType, UnionType

public abstract class Type extends ASTNode
Abstract base class of all type reference AST node types. A type node represents a reference to a primitive type (including void), to an array type, or to a simple named type (or type variable), to a qualified type, to a parameterized type, to a union type, to an intersection type, or to a wildcard type. Note that not all of these are meaningful in all contexts; for example, a wildcard type is only meaningful in the type argument position of a parameterized type. UnionType got introduced in JLS4 to support common catch blocks for disjunctive types. For JLS8, optional annotations indicated by {Annotation} got added.
 Type:
    AnnotatableType:
       PrimitiveType
       SimpleType
       QualifiedType
       NameQualifiedType
       WildcardType
    ArrayType
    ParameterizedType
    UnionType
    IntersectionType

 PrimitiveType:
    { Annotation } byte
    { Annotation } short
    { Annotation } char
    { Annotation } int
    { Annotation } long
    { Annotation } float
    { Annotation } double
    { Annotation } boolean
    { Annotation } void
 ArrayType:
    Type Dimension { Dimension }
 SimpleType:
    { Annotation } TypeName
 QualifiedType:
    Type . {Annotation} SimpleName
 NameQualifiedType:
    Name . { Annotation } SimpleName
 WildcardType:
    { Annotation } ? [ ( extends | super) Type ]
 ParameterizedType:
    Type < Type { , Type } >
 UnionType:
    Type | Type { | Type }
 IntersectionType:
    Type & Type { & Type }
 
Since:
2.0