public class LambdaExpr extends Expression implements NodeWithParameters<LambdaExpr>
(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.
Node.BreadthFirstIterator, Node.DirectChildrenIterator, Node.ObserverRegistrationMode, Node.ParentsVisitor, Node.Parsedness, Node.PostOrderIterator, Node.PreOrderIterator, Node.TreeTraversal
EXCLUDE_ENCLOSED_EXPR, IS_NOT_ENCLOSED_EXPR
ABSOLUTE_BEGIN_LINE, ABSOLUTE_END_LINE, LINE_SEPARATOR_KEY, NODE_BY_BEGIN_POSITION, PHANTOM_KEY, prettyPrinterNoCommentsConfiguration, PRINTER_KEY, SYMBOL_RESOLVER_KEY
Constructor and Description |
---|
LambdaExpr() |
LambdaExpr(NodeList<Parameter> parameters,
BlockStmt body)
Creates a zero or multi-parameter lambda expression with its parameters wrapped in ( ).
|
LambdaExpr(NodeList<Parameter> parameters,
Expression body)
Creates a zero or multi-parameter lambda expression with its parameters wrapped in ( ).
|
LambdaExpr(NodeList<Parameter> parameters,
Statement body,
boolean isEnclosingParameters) |
LambdaExpr(Parameter parameter,
BlockStmt body)
Creates a single parameter lambda expression.
|
LambdaExpr(Parameter parameter,
Expression body)
Creates a single parameter lambda expression.
|
LambdaExpr(TokenRange tokenRange,
NodeList<Parameter> parameters,
Statement body,
boolean isEnclosingParameters)
This constructor is used by the parser and is considered private.
|
Modifier and Type | Method and Description |
---|---|
<R,A> R |
accept(GenericVisitor<R,A> v,
A arg)
Accept method for visitor support.
|
<A> void |
accept(VoidVisitor<A> v,
A arg)
Accept method for visitor support.
|
LambdaExpr |
asLambdaExpr() |
LambdaExpr |
clone() |
Statement |
getBody() |
Optional<Expression> |
getExpressionBody() |
LambdaExprMetaModel |
getMetaModel() |
NodeList<Parameter> |
getParameters() |
void |
ifLambdaExpr(Consumer<LambdaExpr> action) |
boolean |
isEnclosingParameters() |
boolean |
isExplicitlyTyped() |
boolean |
isLambdaExpr() |
boolean |
isPolyExpression()
See https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.2
|
boolean |
remove(Node node) |
boolean |
replace(Node node,
Node replacementNode) |
LambdaExpr |
setBody(Statement body) |
LambdaExpr |
setEnclosingParameters(boolean isEnclosingParameters) |
LambdaExpr |
setParameters(NodeList<Parameter> parameters) |
Optional<LambdaExpr> |
toLambdaExpr() |
appearsInAssignmentContext, appearsInInvocationContext, asAnnotationExpr, asArrayAccessExpr, asArrayCreationExpr, asArrayInitializerExpr, asAssignExpr, asBinaryExpr, asBooleanLiteralExpr, asCastExpr, asCharLiteralExpr, asClassExpr, asConditionalExpr, asDoubleLiteralExpr, asEnclosedExpr, asFieldAccessExpr, asInstanceOfExpr, asIntegerLiteralExpr, asLiteralExpr, asLiteralStringValueExpr, asLongLiteralExpr, asMarkerAnnotationExpr, asMethodCallExpr, asMethodReferenceExpr, asNameExpr, asNormalAnnotationExpr, asNullLiteralExpr, asObjectCreationExpr, asPatternExpr, asRecordPatternExpr, asSingleMemberAnnotationExpr, asStringLiteralExpr, asSuperExpr, asSwitchExpr, asTextBlockLiteralExpr, asThisExpr, asTypeExpr, asTypePatternExpr, asUnaryExpr, asVariableDeclarationExpr, calculateResolvedType, elidesTypeArguments, ifAnnotationExpr, ifArrayAccessExpr, ifArrayCreationExpr, ifArrayInitializerExpr, ifAssignExpr, ifBinaryExpr, ifBooleanLiteralExpr, ifCastExpr, ifCharLiteralExpr, ifClassExpr, ifConditionalExpr, ifDoubleLiteralExpr, ifEnclosedExpr, ifFieldAccessExpr, ifInstanceOfExpr, ifIntegerLiteralExpr, ifLiteralExpr, ifLiteralStringValueExpr, ifLongLiteralExpr, ifMarkerAnnotationExpr, ifMethodCallExpr, ifMethodReferenceExpr, ifNameExpr, ifNormalAnnotationExpr, ifNullLiteralExpr, ifObjectCreationExpr, ifPatternExpr, ifRecordPatternExpr, ifSingleMemberAnnotationExpr, ifStringLiteralExpr, ifSuperExpr, ifSwitchExpr, ifTextBlockLiteralExpr, ifThisExpr, ifTypeExpr, ifTypePatternExpr, ifUnaryExpr, ifVariableDeclarationExpr, isAnnotationExpr, isArrayAccessExpr, isArrayCreationExpr, isArrayInitializerExpr, isAssignExpr, isAssignmentContext, isBinaryExpr, isBooleanLiteralExpr, isCastExpr, isCharLiteralExpr, isClassExpr, isConditionalExpr, isDoubleLiteralExpr, isEnclosedExpr, isFieldAccessExpr, isInstanceOfExpr, isIntegerLiteralExpr, isInvocationContext, isLiteralExpr, isLiteralStringValueExpr, isLongLiteralExpr, isMarkerAnnotationExpr, isMethodCallExpr, isMethodReferenceExpr, isNameExpr, isNormalAnnotationExpr, isNullLiteralExpr, isObjectCreationExpr, isPatternExpr, isQualified, isRecordPatternExpr, isSingleMemberAnnotationExpr, isStandaloneExpression, isStringLiteralExpr, isSuperExpr, isSwitchExpr, isTextBlockLiteralExpr, isThisExpr, isTypeExpr, isTypePatternExpr, isUnaryExpr, isVariableDeclarationExpr, toAnnotationExpr, toArrayAccessExpr, toArrayCreationExpr, toArrayInitializerExpr, toAssignExpr, toBinaryExpr, toBooleanLiteralExpr, toCastExpr, toCharLiteralExpr, toClassExpr, toConditionalExpr, toDoubleLiteralExpr, toEnclosedExpr, toFieldAccessExpr, toInstanceOfExpr, toIntegerLiteralExpr, toLiteralExpr, toLiteralStringValueExpr, toLongLiteralExpr, toMarkerAnnotationExpr, toMethodCallExpr, toMethodReferenceExpr, toNameExpr, toNormalAnnotationExpr, toNullLiteralExpr, toObjectCreationExpr, toPatternExpr, toRecordPatternExpr, toSingleMemberAnnotationExpr, toStringLiteralExpr, toSuperExpr, toSwitchExpr, toTextBlockLiteralExpr, toThisExpr, toTypeExpr, toTypePatternExpr, toUnaryExpr, toVariableDeclarationExpr
addOrphanComment, containsData, createDefaultPrinter, createDefaultPrinter, customInitialization, equals, findAll, findAll, findAll, findByRange, findCompilationUnit, findData, findFirst, findFirst, findFirst, findRootNode, getAllContainedComments, getChildNodes, getChildNodesByType, getComment, getData, getDataKeys, getDefaultPrinterConfiguration, getLineEndingStyle, getLineEndingStyleOrDefault, getNodesByType, getOrphanComments, getParentNode, getParentNodeForChildren, getParsed, getPrinter, getPrinter, getRange, getSymbolResolver, getTokenRange, hashCode, hasScope, isAncestorOf, isPhantom, isRegistered, notifyPropertyChange, register, register, registerForSubtree, remove, removeComment, removeData, removeForced, removeOrphanComment, replace, setAsParentNodeOf, setAsParentNodeOf, setBlockComment, setComment, setData, setLineComment, setParentNode, setParsed, setRange, setTokenRange, stream, stream, toString, toString, tryAddImportToParentCompilationUnit, unregister, walk, walk, walk
finalize, getClass, notify, notifyAll, wait, wait, wait
addAndGetParameter, addAndGetParameter, addAndGetParameter, addAndGetParameter, addParameter, addParameter, addParameter, addParameter, getParameter, getParameterByName, getParameterByType, getParameterByType, hasParametersOfType, hasParametersOfType, setParameter, tryAddImportToParentCompilationUnit
findAncestor, findAncestor, findAncestor, hasParentNode, isDescendantOf
containsWithin, containsWithinRange, getBegin, getEnd, hasRange
public LambdaExpr()
public LambdaExpr(Parameter parameter, BlockStmt body)
public LambdaExpr(NodeList<Parameter> parameters, BlockStmt body)
public LambdaExpr(Parameter parameter, Expression body)
public LambdaExpr(NodeList<Parameter> parameters, Expression body)
public LambdaExpr(NodeList<Parameter> parameters, Statement body, boolean isEnclosingParameters)
public LambdaExpr(TokenRange tokenRange, NodeList<Parameter> parameters, Statement body, boolean isEnclosingParameters)
public NodeList<Parameter> getParameters()
getParameters
in interface NodeWithParameters<LambdaExpr>
public LambdaExpr setParameters(NodeList<Parameter> parameters)
setParameters
in interface NodeWithParameters<LambdaExpr>
public Statement getBody()
public LambdaExpr setBody(Statement body)
public <R,A> R accept(GenericVisitor<R,A> v, A arg)
Visitable
accept
in interface Visitable
R
- the type of the return value of the visitorA
- the type the user argument passed to the visitorv
- the visitor implementationarg
- the argument passed to the visitor (of type A)public <A> void accept(VoidVisitor<A> v, A arg)
Visitable
public boolean isEnclosingParameters()
public LambdaExpr setEnclosingParameters(boolean isEnclosingParameters)
public Optional<Expression> getExpressionBody()
public LambdaExpr clone()
clone
in class Expression
public LambdaExprMetaModel getMetaModel()
getMetaModel
in class Expression
public boolean isLambdaExpr()
isLambdaExpr
in class Expression
public LambdaExpr asLambdaExpr()
asLambdaExpr
in class Expression
public void ifLambdaExpr(Consumer<LambdaExpr> action)
ifLambdaExpr
in class Expression
public Optional<LambdaExpr> toLambdaExpr()
toLambdaExpr
in class Expression
public boolean isPolyExpression()
Expression
isPolyExpression
in class Expression
public boolean isExplicitlyTyped()
Copyright © 2007–2024. All rights reserved.