Diciamo Ho il seguente interfaccia funzionale in Java 8:Java 8 lambda argomento Void
interface Action<T, U> {
U execute(T t);
}
E per alcuni casi ho bisogno un'azione senza argomenti o il tipo di ritorno. Così scrivo qualcosa di simile:
Action<Void, Void> a =() -> { System.out.println("Do nothing!"); };
Tuttavia, mi dà errore di compilazione, ho bisogno di scrivere come
Action<Void, Void> a = (Void v) -> { System.out.println("Do nothing!"); return null;};
Il che è brutto. C'è un modo per sbarazzarsi del parametro di tipo Void
?
Date un'occhiata a http://stackoverflow.com/questions/14319787/how-to-specify-function-types-for-void-not-void-methods-in-java8 – BobTheBuilder
Se avete bisogno di un'azione, come l'hai definito, non è possibile. Tuttavia, il tuo primo esempio potrebbe rientrare in un 'Runnable', che cosa stai cercando' Runnable r =() -> System.out.println ("Do nothing!"); ' –
@BobTheBuilder Non voglio utilizzare un consumatore come suggerito in quel post. – Wickoo