Functional Interfaces
A functional interface is an interface that specifies exactly on method. Functional interfaces may also have one or more default methods.
Functional ObjectsLet us begin with the
functional inteface Consumer<T>. It
specfies exactly one method
public void accept(T t)
This takes an object of type T and performs
some side-effect operation with it.
Why this distinction? Java has a means of creating anonymous function called lambdas.
A Python Moment
Java Lambda Syntax
| Lambda | Action |
|---|---|
x -> x*x |
This is a squaring function. It has a tacit return x*x;
|
(double x) -> x*x |
This squaring function insists its argument be a double. It also has a tacit return statement |
(x, y) -> x + y |
This is the addition function, with a tacit return. |
(int x) ->
{
y = x*x;
return y;
}
| This is a multiline lambda. It must have an explicit return statement. It also insists its argument be an integer. |