Java 8 treats lambdas as an instance of an interface type. It formalises 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.
Let’s run through the basic syntax.