Summary
In this chapter, we learned that lambda expressions make your code more concise. We saw that a functional interface is an interface with just one abstract
method. Lambda expressions are classes that implement functional interfaces with everything but the bare minimum remaining.
The terms final
and “effectively final” refer to local variables used inside lambda expressions. Any non-final
local variable used by a lambda must not change its value, either in the method or the lambda itself. The compiler enforces this, thus making the local variable “effectively final.” This is to ensure that the method’s view of the local variables value is consistent with the lambda’s view (of the local variable’s value). This does not apply to instance or static
variables or local variables not used inside lambdas.
We took a deep dive into functional interfaces from the API. We examined predicates (which test a condition), such as Predicate...