Package org.eclipse.jdt.core.dom
Class Expression
java.lang.Object
org.eclipse.jdt.core.dom.ASTNode
org.eclipse.jdt.core.dom.Expression
- Direct Known Subclasses:
Annotation
,ArrayAccess
,ArrayCreation
,ArrayInitializer
,Assignment
,BooleanLiteral
,CaseDefaultExpression
,CastExpression
,CharacterLiteral
,ClassInstanceCreation
,ConditionalExpression
,FieldAccess
,InfixExpression
,InstanceofExpression
,LambdaExpression
,MethodInvocation
,MethodReference
,Name
,NullLiteral
,NumberLiteral
,ParenthesizedExpression
,Pattern
,PatternInstanceofExpression
,PostfixExpression
,PrefixExpression
,StringFragment
,StringLiteral
,StringTemplateComponent
,StringTemplateExpression
,SuperFieldAccess
,SuperMethodInvocation
,SwitchExpression
,TextBlock
,ThisExpression
,TypeLiteral
,VariableDeclarationExpression
Abstract base class of AST nodes that represent expressions.
There are several kinds of expressions.
Expression:Annotation
,ArrayAccess
,ArrayCreation
,ArrayInitializer
,Assignment
,BooleanLiteral
,CaseDefaultExpression
,CastExpression
,CharacterLiteral
,ClassInstanceCreation
,ConditionalExpression
,CreationReference
,ExpressionMethodReference
,FieldAccess
,InfixExpression
,InstanceofExpression
,LambdaExpression
,MethodInvocation
,MethodReference
,Name
,NullLiteral
,NumberLiteral
,Pattern
,ParenthesizedExpression
,PostfixExpression
,PrefixExpression
,StringLiteral
,SuperFieldAccess
,SuperMethodInvocation
,SuperMethodReference
,SwitchExpression
,ThisExpression
,TypeLiteral
,TypeMethodReference
,VariableDeclarationExpression
- 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_FRAGMENT, STRING_LITERAL, STRING_TEMPLATE_COMPONENT, STRING_TEMPLATE_EXPRESSION, 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 TypeMethodDescriptionfinal boolean
Returns whether this expression node is the site of a boxing conversion (JLS3 5.1.7).final Object
Resolves and returns the compile-time constant expression value as specified in JLS2 15.28, if this expression has one.final ITypeBinding
Resolves and returns the binding for the type of this expression.final boolean
Returns whether this expression node is the site of an unboxing conversion (JLS3 5.1.8).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
-
resolveConstantExpressionValue
Resolves and returns the compile-time constant expression value as specified in JLS2 15.28, if this expression has one. Constant expression values are unavailable unless bindings are requested when the AST is being built. If the type of the value is a primitive type, the result is the boxed equivalent (i.e., int returned as anInteger
); if the type of the value isString
, the result is the string itself. If the expression does not have a compile-time constant expression value, the result isnull
.Resolving constant expressions takes into account the value of simple and qualified names that refer to constant variables (JLS2 4.12.4).
Note 1: enum constants are not considered constant expressions. The result is always
null
for these.Note 2: Compile-time constant expressions cannot denote
null
. So technicallyNullLiteral
nodes are not constant expressions. The result isnull
for these nonetheless.- Returns:
- the constant expression value, or
null
if this expression has no constant expression value or if bindings were not requested when the AST was created - Since:
- 3.1
-
resolveTypeBinding
Resolves and returns the binding for the type of this expression.Note that bindings are generally unavailable unless requested when the AST is being built.
- Returns:
- the binding for the type of this expression, or
null
if the type cannot be resolved
-
resolveBoxing
public final boolean resolveBoxing()Returns whether this expression node is the site of a boxing conversion (JLS3 5.1.7). This information is available only when bindings are requested when the AST is being built.- Returns:
true
if this expression is the site of a boxing conversion, orfalse
if either no boxing conversion is involved or if bindings were not requested when the AST was created- Since:
- 3.1
-
resolveUnboxing
public final boolean resolveUnboxing()Returns whether this expression node is the site of an unboxing conversion (JLS3 5.1.8). This information is available only when bindings are requested when the AST is being built.- Returns:
true
if this expression is the site of an unboxing conversion, orfalse
if either no unboxing conversion is involved or if bindings were not requested when the AST was created- Since:
- 3.1
-