Quote Originariamente inviata da newutente Visualizza il messaggio
l'espressione lambda io posso utilizzarla SOLO se ho anche un'interfaccia funzionale da poter usare, giusto?
Sì, è così, perlomeno al momento in Java 8. L'inferenza funziona solo se una lambda expression (o method reference) viene assegnata direttamente (a una variabile o a un parametro) ad una interfaccia "funzionale".

Runnable r = () -> { .....codice che non ritorna nulla...... };

Così è corretto.

Ma:

Object o = () -> { .....codice che non ritorna nulla...... };

NON compila. Il compilatore non ha appigli per dedurre ciò che gli serve per applicare la lambda expression.