Digamos que eu tenha a seguinte interface funcional no Java 8:
interface Action<T, U> {
U execute(T t);
}
E, em alguns casos, preciso de uma ação sem argumentos ou tipo de retorno. Então eu escrevo algo assim:
Action<Void, Void> a = () -> { System.out.println("Do nothing!"); };
No entanto, isso me dá erro de compilação, preciso escrevê-lo como
Action<Void, Void> a = (Void v) -> { System.out.println("Do nothing!"); return null;};
O que é feio. Existe alguma maneira de se livrar do Void
parâmetro type?
Runnable
, o que você está procurando #Runnable r = () -> System.out.println("Do nothing!");