org.eclipse.wst.jsdt.core.dom

## Class Type

- java.lang.Object
- - org.eclipse.wst.jsdt.core.dom.ASTNode
  - - org.eclipse.wst.jsdt.core.dom.Type

Direct Known Subclasses:
  ArrayType, InferredType, PrimitiveType, QualifiedType, SimpleType

    public abstract class Type
    extends ASTNode

Abstract base class of all type 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, or to a parameterized type. Note that not all of these are meaningful in all contexts.

     Type:
        PrimitiveType
        ArrayType
        SimpleType
        QualifiedType
        ParameterizedType
     PrimitiveType:
        byte
        short
        char
        int
        long
        float
        double
        boolean
        void
     ArrayType:
        Type [ ]
     SimpleType:
        TypeName
     QualifiedType:
        Type . SimpleName

Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

### Field Summary

### Fields inherited from class org.eclipse.wst.jsdt.core.dom.ASTNode

`ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_NAME, ARRAY_TYPE, ARROW_FUNCTION_EXPRESSION, ASSIGNMENT, ASSIGNMENT_NAME, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DEBUGGER_STATEMENT, DO_STATEMENT, EMPTY_EXPRESSION, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, EXPORT_DECLARATION, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_IN_STATEMENT, FOR_OF_STATEMENT, FOR_STATEMENT, FUNCTION_DECLARATION, FUNCTION_DECLARATION_STATEMENT, FUNCTION_EXPRESSION, FUNCTION_INVOCATION, FUNCTION_REF, FUNCTION_REF_PARAMETER, IF_STATEMENT, IMPORT_DECLARATION, INFERRED_TYPE, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVASCRIPT_UNIT, JSDOC, LABELED_STATEMENT, LINE_COMMENT, LIST_EXPRESSION, MALFORMED, MEMBER_REF, META_PROPERTY, MODIFIER, MODULE_SPECIFIER, NULL_LITERAL, NUMBER_LITERAL, OBJECT_LITERAL, OBJECT_LITERAL_FIELD, OBJECT_NAME, ORIGINAL, PACKAGE_DECLARATION, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REGULAR_EXPRESSION_LITERAL, REST_ELEMENT_NAME, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_VARIABLE_DECLARATION, SPREAD_ELEMENT, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, TAG_ELEMENT, TEMPLATE_ELEMENT, TEMPLATE_LITERAL, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_EXPRESSION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, UNDEFINED_LITERAL, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WITH_STATEMENT, YIELD_EXPRESSION`

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `isArrayType()` Returns whether this type is an array type (`ArrayType`).
`boolean` `isInferred()`
`boolean` `isPrimitiveType()` Returns whether this type is a primitive type (`PrimitiveType`).
`boolean` `isQualifiedType()` Returns whether this type is a qualified type (`QualifiedType`).
`boolean` `isSimpleType()` Returns whether this type is a simple type (`SimpleType`).
`ITypeBinding` `resolveBinding()` Resolves and returns the binding for this type.

### Methods inherited from class org.eclipse.wst.jsdt.core.dom.ASTNode

`accept, copySubtree, copySubtrees, delete, equals, getAST, getBodyChild, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Method Detail

#### isPrimitiveType

    public final boolean isPrimitiveType()

Returns whether this type is a primitive type (`PrimitiveType`).

Returns:
  `true` if this is a primitive type, and `false` otherwise

#### isSimpleType

    public final boolean isSimpleType()

Returns whether this type is a simple type (`SimpleType`).

Returns:
  `true` if this is a simple type, and `false` otherwise

#### isArrayType

    public final boolean isArrayType()

Returns whether this type is an array type (`ArrayType`).

Returns:
  `true` if this is an array type, and `false` otherwise

#### 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:

1. `QualifiedType(SimpleType(SimpleName("A")),SimpleName("B"))`
2. `SimpleType(QualifiedName(SimpleName("A"),SimpleName("B")))`

The first form is preferred when "A" is known to be a type. However, a parser cannot always determine this. Clients should be prepared to handle either rather than make assumptions. (Note also that the first form became possible as of JLS3; only the second form existed in the JLS2 API.)

Returns:
  `true` if this is a qualified type, and `false` otherwise

#### 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 `null` if the binding cannot be resolved

#### isInferred

    public boolean isInferred()