Top Description Fields Constructors Methods
com.github.javaparser.ast.expr

public Class LambdaExpr

extends Expression
implements NodeWithParameters<LambdaExpr>
Class Inheritance
All Implemented Interfaces
com.github.javaparser.ast.nodeTypes.NodeWithParameters
Imports
com.github.javaparser.TokenRange, com.github.javaparser.ast.AllFieldsConstructor, .Generated, .Node, .NodeList, com.github.javaparser.ast.body.Parameter, com.github.javaparser.ast.nodeTypes.NodeWithParameters, com.github.javaparser.ast.observer.ObservableProperty, com.github.javaparser.ast.stmt.BlockStmt, .ExpressionStmt, .ReturnStmt, .Statement, com.github.javaparser.ast.visitor.CloneVisitor, .GenericVisitor, .VoidVisitor, com.github.javaparser.metamodel.DerivedProperty, .JavaParserMetaModel, .LambdaExprMetaModel, java.util.Optional, java.util.function.Consumer

A lambda expression

Java 1-7

Does not exist.

Java 8+

(a, b) -> a + b
a -> ...
(Long a) -> { println(a); }

The parameters are on the left side of the ->. If a parameter uses type inference (it has no type specified) then its type is set to UnknownType. If they are in ( ), "isEnclosingParameters" is true.
The body is to the right of the ->. The body is either a BlockStmt when it is in { } braces, or an ExpressionStmt when it is not in braces.

Author
Raquel Pau

Field Summary

Modifier and TypeField and Description
private Statement
private boolean
private NodeList<Parameter>

Constructor Summary

AccessConstructor and Description
public
public
LambdaExpr(Parameter parameter, BlockStmt body)

Creates a single parameter lambda expression.

public
LambdaExpr(NodeList<Parameter> parameters, BlockStmt body)

Creates a zero or multi-parameter lambda expression with its parameters wrapped in ( ).

public
LambdaExpr(Parameter parameter, Expression body)

Creates a single parameter lambda expression.

public
LambdaExpr(NodeList<Parameter> parameters, Expression body)

Creates a zero or multi-parameter lambda expression with its parameters wrapped in ( ).

public
LambdaExpr(NodeList<Parameter> parameters, Statement body, boolean isEnclosingParameters)

public
LambdaExpr(TokenRange tokenRange, NodeList<Parameter> parameters, Statement body, boolean isEnclosingParameters)

This constructor is used by the parser and is considered private.

Method Summary

Modifier and TypeMethod and Description
public <R, A> R
accept(final GenericVisitor<R, A>
the visitor implementation
v
,
final A
the argument passed to the visitor (of type A)
arg
)

Implements com.github.javaparser.ast.visitor.Visitable.accept.

Accept method for visitor support.
public <A> void
accept(final VoidVisitor<A>
the visitor implementation
v
,
final A
any value relevant for the visitor (of type A)
arg
)

Implements com.github.javaparser.ast.visitor.Visitable.accept.

Accept method for visitor support.
public LambdaExpr
public LambdaExpr
clone()

Overrides com.github.javaparser.ast.expr.Expression.clone.

Creates and returns a copy of this object.
public Statement

Returns:

a BlockStatement or an ExpressionStatement. See class Javadoc.
getBody
()

public Optional<Expression>

Returns:

if the body of this lambda is a simple expression, return that expression. Otherwise (when the body is a block) return Optional.empty().
getExpressionBody
()

public LambdaExprMetaModel
public NodeList<Parameter>
public void
public boolean
public boolean
public boolean
public boolean
public LambdaExpr
setBody(final Statement body)

public LambdaExpr
setEnclosingParameters(final boolean isEnclosingParameters)

public LambdaExpr
public Optional<LambdaExpr>
Inherited from com.github.javaparser.ast.expr.Expression:
asAnnotationExprasArrayAccessExprasArrayCreationExprasArrayInitializerExprasAssignExprasBinaryExprasBooleanLiteralExprasCastExprasCharLiteralExprasClassExprasConditionalExprasDoubleLiteralExprasEnclosedExprasFieldAccessExprasInstanceOfExprasIntegerLiteralExprasLiteralExprasLiteralStringValueExprasLongLiteralExprasMarkerAnnotationExprasMethodCallExprasMethodReferenceExprasNameExprasNormalAnnotationExprasNullLiteralExprasObjectCreationExprasSingleMemberAnnotationExprasStringLiteralExprasSuperExprasSwitchExprasTextBlockLiteralExprasThisExprasTypeExprasUnaryExprasVariableDeclarationExprcalculateResolvedTypeifAnnotationExprifArrayAccessExprifArrayCreationExprifArrayInitializerExprifAssignExprifBinaryExprifBooleanLiteralExprifCastExprifCharLiteralExprifClassExprifConditionalExprifDoubleLiteralExprifEnclosedExprifFieldAccessExprifInstanceOfExprifIntegerLiteralExprifLiteralExprifLiteralStringValueExprifLongLiteralExprifMarkerAnnotationExprifMethodCallExprifMethodReferenceExprifNameExprifNormalAnnotationExprifNullLiteralExprifObjectCreationExprifSingleMemberAnnotationExprifStringLiteralExprifSuperExprifSwitchExprifTextBlockLiteralExprifThisExprifTypeExprifUnaryExprifVariableDeclarationExprisAnnotationExprisArrayAccessExprisArrayCreationExprisArrayInitializerExprisAssignExprisBinaryExprisBooleanLiteralExprisCastExprisCharLiteralExprisClassExprisConditionalExprisDoubleLiteralExprisEnclosedExprisFieldAccessExprisInstanceOfExprisIntegerLiteralExprisLiteralExprisLiteralStringValueExprisLongLiteralExprisMarkerAnnotationExprisMethodCallExprisMethodReferenceExprisNameExprisNormalAnnotationExprisNullLiteralExprisObjectCreationExprisSingleMemberAnnotationExprisStringLiteralExprisSuperExprisSwitchExprisTextBlockLiteralExprisThisExprisTypeExprisUnaryExprisVariableDeclarationExprtoAnnotationExprtoArrayAccessExprtoArrayCreationExprtoArrayInitializerExprtoAssignExprtoBinaryExprtoBooleanLiteralExprtoCastExprtoCharLiteralExprtoClassExprtoConditionalExprtoDoubleLiteralExprtoEnclosedExprtoFieldAccessExprtoInstanceOfExprtoIntegerLiteralExprtoLiteralExprtoLiteralStringValueExprtoLongLiteralExprtoMarkerAnnotationExprtoMethodCallExprtoMethodReferenceExprtoNameExprtoNormalAnnotationExprtoNullLiteralExprtoObjectCreationExprtoSingleMemberAnnotationExprtoStringLiteralExprtoSuperExprtoSwitchExprtoTextBlockLiteralExprtoThisExprtoTypeExprtoUnaryExprtoVariableDeclarationExpr

Field Detail

bodyback to summary
private Statement body
isEnclosingParametersback to summary
private boolean isEnclosingParameters
parametersback to summary
private NodeList<Parameter> parameters

Constructor Detail

LambdaExprback to summary
public LambdaExpr()
LambdaExprback to summary
public LambdaExpr(Parameter parameter, BlockStmt body)

Creates a single parameter lambda expression.

LambdaExprback to summary
public LambdaExpr(NodeList<Parameter> parameters, BlockStmt body)

Creates a zero or multi-parameter lambda expression with its parameters wrapped in ( ).

LambdaExprback to summary
public LambdaExpr(Parameter parameter, Expression body)

Creates a single parameter lambda expression.

LambdaExprback to summary
public LambdaExpr(NodeList<Parameter> parameters, Expression body)

Creates a zero or multi-parameter lambda expression with its parameters wrapped in ( ).

LambdaExprback to summary
public LambdaExpr(NodeList<Parameter> parameters, Statement body, boolean isEnclosingParameters)
Annotations
@AllFieldsConstructor
LambdaExprback to summary
public LambdaExpr(TokenRange tokenRange, NodeList<Parameter> parameters, Statement body, boolean isEnclosingParameters)

This constructor is used by the parser and is considered private.

Annotations
@Generated:com.github.javaparser.generator.core.node.MainConstructorGenerator

Method Detail

acceptback to summary
public <R, A> R accept(final GenericVisitor<R, A> v, final A arg)

Implements com.github.javaparser.ast.visitor.Visitable.accept.

Doc from com.github.javaparser.ast.visitor.Visitable.accept.

Accept method for visitor support.

Parameters
<R>
the type of the return value of the visitor
<A>
the type the user argument passed to the visitor
v:GenericVisitor<R, A>

the visitor implementation

arg:A

the argument passed to the visitor (of type A)

Returns:R

the result of the visit (of type R)

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.AcceptGenerator
acceptback to summary
public <A> void accept(final VoidVisitor<A> v, final A arg)

Implements com.github.javaparser.ast.visitor.Visitable.accept.

Doc from com.github.javaparser.ast.visitor.Visitable.accept.

Accept method for visitor support.

Parameters
<A>
the type the argument passed for the visitor
v:VoidVisitor<A>

the visitor implementation

arg:A

any value relevant for the visitor (of type A)

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.AcceptGenerator
asLambdaExprback to summary
public LambdaExpr asLambdaExpr()

Overrides com.github.javaparser.ast.expr.Expression.asLambdaExpr.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.TypeCastingGenerator
cloneback to summary
public LambdaExpr clone()

Overrides com.github.javaparser.ast.expr.Expression.clone.

Doc from java.lang.Object.clone.

Creates and returns a copy of this object. The precise meaning of "copy" may depend on the class of the object. The general intent is that, for any object x, the expression:

x.clone() != x
will be true, and that the expression:
x.clone().getClass() == x.getClass()
will be true, but these are not absolute requirements. While it is typically the case that:
x.clone().equals(x)
will be true, this is not an absolute requirement.

By convention, the returned object should be obtained by calling super.clone. If a class and all of its superclasses (except Object) obey this convention, it will be the case that x.clone().getClass() == x.getClass().

By convention, the object returned by this method should be independent of this object (which is being cloned). To achieve this independence, it may be necessary to modify one or more fields of the object returned by super.clone before returning it. Typically, this means copying any mutable objects that comprise the internal "deep structure" of the object being cloned and replacing the references to these objects with references to the copies. If a class contains only primitive fields or references to immutable objects, then it is usually the case that no fields in the object returned by super.clone need to be modified.

Returns:LambdaExpr

a clone of this instance.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.CloneGenerator
getBodyback to summary
public Statement getBody()
Returns:Statement

a BlockStatement or an ExpressionStatement. See class Javadoc.

Annotations
@Generated:com.github.javaparser.generator.core.node.PropertyGenerator
getExpressionBodyback to summary
public Optional<Expression> getExpressionBody()
Returns:Optional<Expression>

if the body of this lambda is a simple expression, return that expression. Otherwise (when the body is a block) return Optional.empty().

Annotations
@DerivedProperty
getMetaModelback to summary
public LambdaExprMetaModel getMetaModel()

Overrides com.github.javaparser.ast.expr.Expression.getMetaModel.

Returns:LambdaExprMetaModel

Doc from com.github.javaparser.ast.Node.getMetaModel.

get JavaParser specific node introspection information.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.GetMetaModelGenerator
getParametersback to summary
public NodeList<Parameter> getParameters()

Implements com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParameters.

Annotations
@Generated:com.github.javaparser.generator.core.node.PropertyGenerator
ifLambdaExprback to summary
public void ifLambdaExpr(Consumer<LambdaExpr> action)

Overrides com.github.javaparser.ast.expr.Expression.ifLambdaExpr.

Annotations
@Generated:com.github.javaparser.generator.core.node.TypeCastingGenerator
isEnclosingParametersback to summary
public boolean isEnclosingParameters()
Annotations
@Generated:com.github.javaparser.generator.core.node.PropertyGenerator
isLambdaExprback to summary
public boolean isLambdaExpr()

Overrides com.github.javaparser.ast.expr.Expression.isLambdaExpr.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.TypeCastingGenerator
removeback to summary
public boolean remove(Node node)

Overrides com.github.javaparser.ast.expr.Expression.remove.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.RemoveMethodGenerator
replaceback to summary
public boolean replace(Node node, Node replacementNode)

Overrides com.github.javaparser.ast.expr.Expression.replace.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.ReplaceMethodGenerator
setBodyback to summary
public LambdaExpr setBody(final Statement body)
Annotations
@Generated:com.github.javaparser.generator.core.node.PropertyGenerator
setEnclosingParametersback to summary
public LambdaExpr setEnclosingParameters(final boolean isEnclosingParameters)
Annotations
@Generated:com.github.javaparser.generator.core.node.PropertyGenerator
setParametersback to summary
public LambdaExpr setParameters(final NodeList<Parameter> parameters)

Implements com.github.javaparser.ast.nodeTypes.NodeWithParameters.setParameters.

Annotations
@Generated:com.github.javaparser.generator.core.node.PropertyGenerator
toLambdaExprback to summary
public Optional<LambdaExpr> toLambdaExpr()

Overrides com.github.javaparser.ast.expr.Expression.toLambdaExpr.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.TypeCastingGenerator