Java 8 idioms: Functional interfaces
See the original posting on IBM developerWorks – Java
In Java 8, lambda expressions are treated as a type of functional interface.
Learn how this design decision supports backward compatibility with older versions of
the language, then see examples of both custom and built-in functional interfaces in a Java program. Find out why using built-in interfaces is usually optimal, even in cases where a custom interface might seem more obvious.