Class LambdaExpression
- java.lang.Object
-
- org.eclipse.jdt.core.dom.ASTNode
-
- org.eclipse.jdt.core.dom.Expression
-
- org.eclipse.jdt.core.dom.LambdaExpression
-
public class LambdaExpression extends Expression
Lambda expression AST node type (added in JLS8 API).LambdaExpression: Identifier -> Body ( [ Identifier { , Identifier } ] ) -> Body ( [ FormalParameter { , FormalParameter } ] ) -> Body
The first two forms use
VariableDeclarationFragment
for the parameter or parameters, while the third form usesSingleVariableDeclaration
.The Body can be either a
Block
or anExpression
.- Since:
- 3.10
- Restriction:
- This class is not intended to be instantiated by clients
-
-
Field Summary
Fields Modifier and Type Field Description static ChildPropertyDescriptor
BODY_PROPERTY
The "body" structural property of this node type (child type:ASTNode
, must be either aBlock
or anExpression
).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
).-
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, 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, EXPORTS_DIRECTIVE, 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, MODULE_DECLARATION, MODULE_MODIFIER, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, 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, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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 expressionvoid
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.-
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 Detail
-
PARENTHESES_PROPERTY
public static final SimplePropertyDescriptor 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
public static final ChildListPropertyDescriptor 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
public static final ChildPropertyDescriptor BODY_PROPERTY
The "body" structural property of this node type (child type:ASTNode
, must be either aBlock
or anExpression
).
-
-
Method Detail
-
propertyDescriptors
public static List propertyDescriptors(int apiLevel)
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
public List 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
public ASTNode getBody()
Returns the body of this lambda expression.- Returns:
- the lambda expression body, which can be either a
Block
or anExpression
-
setBody
public void setBody(ASTNode body)
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
public IMethodBinding 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
-
-