public class LambdaExpression extends Expression
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.
| Modifier and Type | Field and Description |
|---|---|
static ChildPropertyDescriptor |
BODY_PROPERTY
The "body" structural property of this node type (child type:
ASTNode,
must be either a Block or an Expression). |
static ChildListPropertyDescriptor |
PARAMETERS_PROPERTY
The "parameters" structural property of this node type (element type:
VariableDeclaration). |
static SimplePropertyDescriptor |
PARENTHESES_PROPERTY
The "parentheses" structural property of this node type (type:
Boolean). |
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, 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, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, 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_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE| Modifier and Type | Method and Description |
|---|---|
ASTNode |
getBody()
Returns the body of this lambda expression.
|
boolean |
hasParentheses()
Returns whether parentheses around the parameters are present or not.
|
List |
parameters()
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.
|
IMethodBinding |
resolveMethodBinding()
Resolves and returns the binding for the lambda expression
Note that bindings are generally unavailable unless requested when the
AST is being built.
|
void |
setBody(ASTNode body)
Sets the body of this lambda expression.
|
void |
setParentheses(boolean hasParentheses)
Sets whether this lambda expression has parentheses around its parameters or not.
|
resolveBoxing, resolveConstantExpressionValue, resolveTypeBinding, resolveUnboxingaccept, copySubtree, copySubtrees, delete, equals, getAST, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toStringpublic static final SimplePropertyDescriptor PARENTHESES_PROPERTY
Boolean).
Note that parentheses are required unless parameters() contains
just a single VariableDeclarationFragment.
ASTRewrite may ignore this property if necessary.
public static final ChildListPropertyDescriptor PARAMETERS_PROPERTY
VariableDeclaration).
Note that all elements must be of the same type, either all SingleVariableDeclaration or all VariableDeclarationFragment.
public static final ChildPropertyDescriptor BODY_PROPERTY
ASTNode,
must be either a Block or an Expression).public static List propertyDescriptors(int apiLevel)
apiLevel - the API level; one of the AST.JLS* constantsStructuralPropertyDescriptor)public boolean hasParentheses()
Note that parentheses are required unless parameters() contains
just a single VariableDeclarationFragment.
ASTRewrite may ignore this property if necessary.
true if this lambda expression has parentheses around
its parameters and false otherwisepublic void setParentheses(boolean hasParentheses)
Note that parentheses are required unless parameters() contains
just a single VariableDeclarationFragment.
ASTRewrite may ignore this property if necessary.
hasParentheses - true if this lambda expression has parentheses around its parameters
and false otherwisepublic List parameters()
SingleVariableDeclaration (explicit type), orVariableDeclarationFragment (inferred type).VariableDeclaration)public ASTNode getBody()
Block or an Expressionpublic void setBody(ASTNode body)
body - a block node or an expression nodeIllegalArgumentException - if:
Block nor an Expressionpublic IMethodBinding resolveMethodBinding()
Note that bindings are generally unavailable unless requested when the AST is being built.
null if the binding cannot be
resolved
Copyright (c) 2000, 2014 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.