Package org.eclipse.jdt.core.dom
Class Type
java.lang.Object
org.eclipse.jdt.core.dom.ASTNode
org.eclipse.jdt.core.dom.Type
- Direct Known Subclasses:
AnnotatableType
,ArrayType
,IntersectionType
,ParameterizedType
,UnionType
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 IntersectionTypePrimitiveType
: { Annotation } byte { Annotation } short { Annotation } char { Annotation } int { Annotation } long { Annotation } float { Annotation } double { Annotation } boolean { Annotation } voidArrayType
: Type Dimension { Dimension }SimpleType
: { Annotation } TypeNameQualifiedType
: Type . {Annotation} SimpleNameNameQualifiedType
: Name . { Annotation } SimpleNameWildcardType
: { Annotation } ? [ ( extends | super) Type ]ParameterizedType
: Type < Type { , Type } >UnionType
: Type | Type { | Type }IntersectionType
: Type & Type { & Type }
- Since:
- 2.0
-
Field Summary
Fields inherited from class org.eclipse.jdt.core.dom.ASTNode
ANNOTATION_TYPE_DECLARATION, ANNOTATION_TYPE_MEMBER_DECLARATION, ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CASE_DEFAULT_EXPRESSION, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EitherOr_MultiPattern, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, GUARDED_PATTERN, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, JAVADOC_REGION, JAVADOC_TEXT_ELEMENT, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, MODULE_DECLARATION, MODULE_MODIFIER, MODULE_QUALIFIED_NAME, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NULL_PATTERN, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, PATTERN_INSTANCEOF_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, RECORD_PATTERN, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_EXPRESSION, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TAG_PROPERTY, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, TYPE_PATTERN, UNION_TYPE, UNNAMED_CLASS, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Returns whether this type can be annotated.final boolean
Returns whether this type is an array type (ArrayType
).final boolean
Returns whether this type is an intersection type (IntersectionType
).final boolean
Returns whether this type is a name qualified type (NameQualifiedType
).final boolean
Returns whether this type is a parameterized type (ParameterizedType
).final boolean
Returns whether this type is a primitive type (PrimitiveType
).final boolean
Returns whether this type is a qualified type (QualifiedType
).final boolean
Returns whether this type is a simple type (SimpleType
).final boolean
Returns whether this type is a union type (UnionType
).boolean
isVar()
Returns whether this type is a var.final boolean
Returns whether this type is a wildcard type (WildcardType
).final ITypeBinding
Resolves and returns the binding for this type.Methods inherited from class org.eclipse.jdt.core.dom.ASTNode
accept, copySubtree, copySubtrees, delete, equals, getAST, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString
-
Method Details
-
isPrimitiveType
public final boolean isPrimitiveType()Returns whether this type is a primitive type (PrimitiveType
).- Returns:
true
if this is a primitive type, andfalse
otherwise
-
isSimpleType
public final boolean isSimpleType()Returns whether this type is a simple type (SimpleType
).- Returns:
true
if this is a simple type, andfalse
otherwise
-
isArrayType
public final boolean isArrayType()Returns whether this type is an array type (ArrayType
).- Returns:
true
if this is an array type, andfalse
otherwise
-
isNameQualifiedType
public final boolean isNameQualifiedType()Returns whether this type is a name qualified type (NameQualifiedType
).- Returns:
true
if this is a name qualified type, andfalse
otherwise- Since:
- 3.10
-
isParameterizedType
public final boolean isParameterizedType()Returns whether this type is a parameterized type (ParameterizedType
).- Returns:
true
if this is a parameterized type, andfalse
otherwise- Since:
- 3.1
-
isQualifiedType
public final boolean isQualifiedType()Returns whether this type is a qualified type (QualifiedType
).Note that a type like "A.B" can be represented either of two ways:
-
QualifiedType(SimpleType(SimpleName("A")),SimpleName("B"))
-
SimpleType(QualifiedName(SimpleName("A"),SimpleName("B")))
- Returns:
true
if this is a qualified type, andfalse
otherwise- Since:
- 3.1
-
-
isUnionType
public final boolean isUnionType()Returns whether this type is a union type (UnionType
).- Returns:
true
if this is a union type, andfalse
otherwise- Since:
- 3.7.1
-
isVar
public boolean isVar()Returns whether this type is a var. The convenience method checks whether the type is so named.- Returns:
true
if this is a var, andfalse
otherwise- Throws:
UnsupportedOperationException
- if this operation is used in an AST of level less than JLS10- Since:
- 3.14
-
isIntersectionType
public final boolean isIntersectionType()Returns whether this type is an intersection type (IntersectionType
).- Returns:
true
if this is an intersection type, andfalse
otherwise- Since:
- 3.10
-
isWildcardType
public final boolean isWildcardType()Returns whether this type is a wildcard type (WildcardType
).Note that a wildcard type is only meaningful as a type argument of a
ParameterizedType
node.- Returns:
true
if this is a wildcard type, andfalse
otherwise- Since:
- 3.1
-
isAnnotatable
public boolean isAnnotatable()Returns whether this type can be annotated. All sub-classes ofAnnotatableType
can be annotated.- Returns:
true
if this type is an instance ofAnnotatableType
, andfalse
otherwise- Since:
- 3.10
-
resolveBinding
Resolves and returns the binding for this type.Note that bindings are generally unavailable unless requested when the AST is being built.
- Returns:
- the type binding, or
null
if the binding cannot be resolved
-