Diciamo che ho la seguente interfaccia funzionale in Java 8:
interface Action<T, U> {
U execute(T t);
}
E per alcuni casi ho bisogno di un'azione senza argomenti o tipo di ritorno. Quindi scrivo qualcosa del genere:
Action<Void, Void> a = () -> { System.out.println("Do nothing!"); };
Tuttavia, mi dà errore di compilazione, devo scriverlo come
Action<Void, Void> a = (Void v) -> { System.out.println("Do nothing!"); return null;};
Che è brutto. C'è un modo per sbarazzarsi del Void
parametro type?
Runnable
, quello che stai cercandoRunnable r = () -> System.out.println("Do nothing!");