Da Java 8, è possibile specificare funzioni anonime utilizzando una notazione molto compatta, le espressioni lambda.
Esempio di espressione lambda:
() -> { System.out.println("hello!"); }
Esempio di implementazione:
@FunctionalInterface
public interface Runnable
{
void run();
}
Runnable r = () -> { System.out.println("hello!"); };
r.run(); // stampa "hello!"
Come definire le espressioni lambda
(param1, param2, ..., paramN) -> { System.out.println("hello!"); };
N.B.:
- Le parentesi tonde sono opzionali se in input abbiamo un solo parametro.
- Le parentei graffe sono opzionali se in input abbiamo un solo parametro.
- Il tipo dei parametri è opzionale perché desunto dal contesto.
- Il return è opzionale se c’è una sola espressione di return.