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
Modifier and TypeFieldDescriptionstatic final ChildPropertyDescriptor
The "body" structural property of this node type (child type:ASTNode
, must be either aBlock
or anExpression
).static final ChildListPropertyDescriptor
The "parameters" structural property of this node type (element type:VariableDeclaration
).static final SimplePropertyDescriptor
The "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_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 TypeMethodDescriptiongetBody()
Returns the body of this lambda expression.boolean
Returns whether parentheses around the parameters are present or not.Returns the live ordered list of formal parameters of this lambda expression.static List
propertyDescriptors
(int apiLevel) Returns a list of structural property descriptors for this node type.Resolves and returns the binding for the lambda expressionvoid
Sets the body of this lambda expression.void
setParentheses
(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, resolveUnboxing
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
-
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
SingleVariableDeclaration
or allVariableDeclarationFragment
. -
BODY_PROPERTY
The "body" structural property of this node type (child type:ASTNode
, must be either aBlock
or 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:
true
if this lambda expression has parentheses around its parameters andfalse
otherwise
-
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
-true
if this lambda expression has parentheses around its parameters andfalse
otherwise
-
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
Block
or 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
Block
nor 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
null
if the binding cannot be resolved
-