Informally, a functional interface is one whose type can be used for a method parameter when a lambda is to be supplied as the actual argument. For example, the forEach method on collections could have the following signature:
public void forEach(Consumer<? super T> consumer);
The implementation of forEach must apply a single method of the […]