public class LambdaExpression extends Object
Encapsulates a parameterized ValueExpression
.
A LambdaExpression
is a representation of the EL Lambda
expression syntax. It consists of a list of the formal parameters and a
body, represented by a ValueExpression
.
The body can be any valid Expression
, including another
LambdaExpression
.
LambdaExpression
is created when an EL expression containing
a Lambda expression is evaluated.
A LambdaExpression
can be invoked by calling
invoke(javax.el.ELContext, java.lang.Object...)
, with
an ELContext
and a list of the actual arguments.
Alternately, a LambdaExpression
can be invoked without passing
a ELContext
, in which case the ELContext
previously
set by calling setELContext(javax.el.ELContext)
will be used.
The evaluation of the ValueExpression
in the body uses the
ELContext
to resolve references to the parameters, and to evaluate
the lambda expression.
The result of the evaluation is returned.
Constructor and Description |
---|
LambdaExpression(List<String> formalParameters,
ValueExpression expression)
Creates a new LambdaExpression.
|
Modifier and Type | Method and Description |
---|---|
Object |
invoke(ELContext elContext,
Object... args)
Invoke the encapsulated Lambda expression.
|
Object |
invoke(Object... args)
Invoke the encapsulated Lambda expression.
|
void |
setELContext(ELContext context)
Set the ELContext to use in evaluating the LambdaExpression.
|
public LambdaExpression(List<String> formalParameters, ValueExpression expression)
formalParameters
- The list of String representing the formal
parameters.expression
- The ValueExpression
representing the
body.public void setELContext(ELContext context)
invoke(javax.el.ELContext, java.lang.Object...)
.context
- The ELContext to use in evaluating the LambdaExpression.public Object invoke(ELContext elContext, Object... args) throws ELException
The supplied arguments are matched, in
the same order, to the formal parameters. If there are more arguments
than the formal parameters, the extra arguments are ignored. If there
are less arguments than the formal parameters, an
ELException
is thrown.
The actual Lambda arguments are added to the ELContext and are available during the evaluation of the Lambda expression. They are removed after the evaluation.
elContext
- The ELContext used for the evaluation of the expression
The ELContext set by setELContext(javax.el.ELContext)
is ignored.args
- The arguments to invoke the Lambda expression. For calls with
no arguments, an empty array must be provided. A Lambda argument
can be null
.ELException
- if not enough arguments are providedNullPointerException
- is elContext is nullpublic Object invoke(Object... args)
The supplied arguments are matched, in
the same order, to the formal parameters. If there are more arguments
than the formal parameters, the extra arguments are ignored. If there
are less arguments than the formal parameters, an
ELException
is thrown.
The actual Lambda arguments are added to the ELContext and are available during the evaluation of the Lambda expression. They are removed after the evaluation.
The ELContext set bysetELContext(javax.el.ELContext)
is used in
the evaluation of the lambda Expression.args
- The arguments to invoke the Lambda expression. For calls with
no arguments, an empty array must be provided. A Lambda argument
can be null
.ELException
- if not enough arguments are providedCopyright © 1996-2017, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.