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
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 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, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, 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, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, 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, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanisAnnotatable()Returns whether this type can be annotated.booleanisArrayType()Returns whether this type is an array type (ArrayType).booleanisIntersectionType()Returns whether this type is an intersection type (IntersectionType).booleanisNameQualifiedType()Returns whether this type is a name qualified type (NameQualifiedType).booleanisParameterizedType()Returns whether this type is a parameterized type (ParameterizedType).booleanisPrimitiveType()Returns whether this type is a primitive type (PrimitiveType).booleanisQualifiedType()Returns whether this type is a qualified type (QualifiedType).booleanisSimpleType()Returns whether this type is a simple type (SimpleType).booleanisUnionType()Returns whether this type is a union type (UnionType).booleanisVar()Returns whether this type is a var.booleanisWildcardType()Returns whether this type is a wildcard type (WildcardType).ITypeBindingresolveBinding()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 Detail
-
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
public final ITypeBinding 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
-
-