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 } ] ) -> BodyThe first two forms use
VariableDeclarationFragmentfor the parameter or parameters, while the third form usesSingleVariableDeclaration.The Body can be either a
Blockor anExpression.- Since:
- 3.10
- Restriction:
- This class is not intended to be instantiated by clients
-
-
Field Summary
Fields Modifier and Type Field Description static ChildPropertyDescriptorBODY_PROPERTYThe "body" structural property of this node type (child type:ASTNode, must be either aBlockor anExpression).static ChildListPropertyDescriptorPARAMETERS_PROPERTYThe "parameters" structural property of this node type (element type:VariableDeclaration).static SimplePropertyDescriptorPARENTHESES_PROPERTYThe "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 ASTNodegetBody()Returns the body of this lambda expression.booleanhasParentheses()Returns whether parentheses around the parameters are present or not.Listparameters()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.IMethodBindingresolveMethodBinding()Resolves and returns the binding for the lambda expressionvoidsetBody(ASTNode body)Sets 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, 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
SingleVariableDeclarationor allVariableDeclarationFragment.
-
BODY_PROPERTY
public static final ChildPropertyDescriptor BODY_PROPERTY
The "body" structural property of this node type (child type:ASTNode, must be either aBlockor 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:
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
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
Blockor 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
Blocknor 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
nullif the binding cannot be resolved
-
-