-
Book Overview & Buying
-
Table Of Contents
Learning Java Lambdas
By :
Java treats lambdas as an instance of an interface type. It formalizes this into something it calls functional interfaces. A functional interface is just an interface with a single method. Java calls the method a "functional method" but the name "single abstract method" or SAM is often used.
All the existing single method interfaces like Runnable and Callable in the JDK are now functional interfaces and lambdas can be used anywhere a single abstract method interface is used. In fact, it's functional interfaces that allow for what's called target typing; they provide enough information for the compiler to infer argument and return types.
Oracle have introduced a new annotation @FunctionalInterface to mark an interface as such. It's basically to communicate intent but also allows the compiler to do some additional checks.
For example, this interface compiles:
public interface FunctionalInterfaceExample {
// compiles...
Change the font size
Change margin width
Change background colour