Digamos que tengo la siguiente interfaz funcional en Java 8:
interface Action<T, U> {
U execute(T t);
}
Y para algunos casos necesito una acción sin argumentos o tipo de retorno. Entonces escribo algo como esto:
Action<Void, Void> a = () -> { System.out.println("Do nothing!"); };
Sin embargo, me da un error de compilación, necesito escribirlo como
Action<Void, Void> a = (Void v) -> { System.out.println("Do nothing!"); return null;};
Lo cual es feo. ¿Hay alguna forma de deshacerse del Void
parámetro type?
Runnable
lo que está buscandoRunnable r = () -> System.out.println("Do nothing!");