Always in the context of the API for standalone environments, EL 3.0 has added the
ELManager class to provide lower-level APIs that enable the management of the EL
parsing and evaluation environment. With this class, you can import classes or add
your own resolver to ELProcessor .
A lambda expression is an anonymous function that consists of one or more para-
meters in brackets (if there are several), the lambda operator ( -> ), and the body of
the lambda expression. The expression: x-> x * x , is a lambda expression used
to determine the square of a number. Basically, lambda expressions save you from
having to create a whole class for a single method or to declare a method for a very
simple operation that will be used once. So, they can help to write more readable
and maintainable code.
A lambda expression can take many forms, as follows:
• It may involve a number of parameters and can be invoked immediately. The
expression: ((x,y,z)->x+y*z)(3,2,4) , returns 11.
• It can be associated with an identifier and invoked later. The expression:
diff = (x,y)-> x-y; diff(10,3) , returns 7.
• It can be passed as an argument to a method or nested within another
lambda expression. The expression: diff=(x,y)->(x-y);diff(10,[
2,6,4,5].stream().filter(s->s < 4).max().get()) , returns 8.
Collection object support
The support of collection objects in the EL 3.0 Specification is done in two ways: the
construction of collection objects and implementation of operations that will be used
to manipulate them.
Collection object construction
Concerning the creation of a collection, EL allow us to create objects of type
java.lang.util.Set , java.lang.util.List , and java.lang.util.Map
dynamically by using an expression or literals.
The different types of object construction are as follows: