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
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
-
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 TypeMethodDescriptionbooleanReturns whether this type can be annotated.final booleanReturns whether this type is an array type (ArrayType).final booleanReturns whether this type is an intersection type (IntersectionType).final booleanReturns whether this type is a name qualified type (NameQualifiedType).final booleanReturns whether this type is a parameterized type (ParameterizedType).final booleanReturns whether this type is a primitive type (PrimitiveType).final booleanReturns whether this type is a qualified type (QualifiedType).final booleanReturns whether this type is a simple type (SimpleType).final booleanReturns whether this type is a union type (UnionType).booleanisVar()Returns whether this type is a var.final booleanReturns whether this type is a wildcard type (WildcardType).final ITypeBindingResolves 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:
trueif this is a primitive type, andfalseotherwise
-
isSimpleType
public final boolean isSimpleType()Returns whether this type is a simple type (SimpleType).- Returns:
trueif this is a simple type, andfalseotherwise
-
isArrayType
public final boolean isArrayType()Returns whether this type is an array type (ArrayType).- Returns:
trueif this is an array type, andfalseotherwise
-
isNameQualifiedType
public final boolean isNameQualifiedType()Returns whether this type is a name qualified type (NameQualifiedType).- Returns:
trueif this is a name qualified type, andfalseotherwise- Since:
- 3.10
-
isParameterizedType
public final boolean isParameterizedType()Returns whether this type is a parameterized type (ParameterizedType).- Returns:
trueif this is a parameterized type, andfalseotherwise- 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:
trueif this is a qualified type, andfalseotherwise- Since:
- 3.1
-
-
isUnionType
public final boolean isUnionType()Returns whether this type is a union type (UnionType).- Returns:
trueif this is a union type, andfalseotherwise- 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:
trueif this is a var, andfalseotherwise- 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:
trueif this is an intersection type, andfalseotherwise- 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
ParameterizedTypenode.- Returns:
trueif this is a wildcard type, andfalseotherwise- Since:
- 3.1
-
isAnnotatable
public boolean isAnnotatable()Returns whether this type can be annotated. All sub-classes ofAnnotatableTypecan be annotated.- Returns:
trueif this type is an instance ofAnnotatableType, andfalseotherwise- 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
nullif the binding cannot be resolved
-