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, resolveUnboxing
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
public 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 Expression
public void setBody(ASTNode body)
body
- a block node or an expression nodeIllegalArgumentException
- if:
Block
nor an Expression
public 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, 2015 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.