Class LambdaExpression
LambdaExpression:
Identifier -> Body
( [ Identifier { , Identifier } ] ) -> Body
( [ FormalParameter { , FormalParameter } ] ) -> Body
The first two forms use VariableDeclarationFragment for the parameter or parameters,
while the third form uses SingleVariableDeclaration.
The Body can be either a Block or an Expression.
- Since:
- 3.10
- Restriction:
- This class is not intended to be instantiated by clients
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ChildPropertyDescriptorThe "body" structural property of this node type (child type:ASTNode, must be either aBlockor anExpression).static final ChildListPropertyDescriptorThe "parameters" structural property of this node type (element type:VariableDeclaration).static final SimplePropertyDescriptorThe "parentheses" structural property of this node type (type:Boolean).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 TypeMethodDescriptiongetBody()Returns the body of this lambda expression.booleanReturns whether parentheses around the parameters are present or not.Returns the live ordered list of formal parameters of this lambda expression.static ListpropertyDescriptors(int apiLevel) Returns a list of structural property descriptors for this node type.Resolves and returns the binding for the lambda expressionvoidSets the body of this lambda expression.voidsetParentheses(boolean hasParentheses) Sets whether this lambda expression has parentheses around its parameters or not.Methods inherited from class org.eclipse.jdt.core.dom.Expression
resolveBoxing, resolveConstantExpressionValue, resolveTypeBinding, resolveUnboxingMethods 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
-
Field Details
-
PARENTHESES_PROPERTY
The "parentheses" structural property of this node type (type:Boolean).Note that parentheses are required unless
parameters()contains just a singleVariableDeclarationFragment. ASTRewrite may ignore this property if necessary. -
PARAMETERS_PROPERTY
The "parameters" structural property of this node type (element type:VariableDeclaration).Note that all elements must be of the same type, either all
SingleVariableDeclarationor allVariableDeclarationFragment. -
BODY_PROPERTY
The "body" structural property of this node type (child type:ASTNode, must be either aBlockor anExpression).
-
-
Method Details
-
propertyDescriptors
Returns a list of structural property descriptors for this node type. Clients must not modify the result.- Parameters:
apiLevel- the API level; one of the AST.JLS* constants- Returns:
- a list of property descriptors (element type:
StructuralPropertyDescriptor)
-
hasParentheses
public boolean hasParentheses()Returns whether parentheses around the parameters are present or not.Note that parentheses are required unless
parameters()contains just a singleVariableDeclarationFragment. ASTRewrite may ignore this property if necessary.- Returns:
trueif this lambda expression has parentheses around its parameters andfalseotherwise
-
setParentheses
public void setParentheses(boolean hasParentheses) Sets whether this lambda expression has parentheses around its parameters or not.Note that parentheses are required unless
parameters()contains just a singleVariableDeclarationFragment. ASTRewrite may ignore this property if necessary.- Parameters:
hasParentheses-trueif this lambda expression has parentheses around its parameters andfalseotherwise
-
parameters
Returns the live ordered list of formal parameters of this lambda expression. Note that all elements must be of the same type, either- all
SingleVariableDeclaration(explicit type), or - all
VariableDeclarationFragment(inferred type).
- Returns:
- the live list of formal parameters of this lambda expression
(element type:
VariableDeclaration)
- all
-
getBody
Returns the body of this lambda expression.- Returns:
- the lambda expression body, which can be either a
Blockor anExpression
-
setBody
Sets the body of this lambda expression.- Parameters:
body- a block node or an expression node- Throws:
IllegalArgumentException- if:- the node belongs to a different AST
- the node already has a parent
- a cycle in would be created
- body is neither a
Blocknor anExpression
-
resolveMethodBinding
Resolves and returns the binding for the lambda expressionNote that bindings are generally unavailable unless requested when the AST is being built.
- Returns:
- the binding, or
nullif the binding cannot be resolved
-