Derzeit in Java 8-Lambda-Ausdrücke und Methodenreferenzen einsteigen.
Ich möchte eine Methode ohne Argumente und ohne Rückgabewert als Argument an eine andere Methode übergeben. So mache ich es:
public void one() {
System.out.println("one()");
}
public void pass() {
run(this::one);
}
public void run(final Function function) {
function.call();
}
@FunctionalInterface
interface Function {
void call();
}
Ich weiß, dass es eine Reihe vordefinierter funktionaler Schnittstellen gibt java.util.function
wie zum Beispiel Function<T,R>
aber ich habe keinen gefunden, der keine Argumente hat und kein Ergebnis liefert.
Es spielt wirklich keine Rolle; Runnable geht auch.
Supplier<Void>, Function<Void, Void>
.– Joop Eggen
7. August 2014 um 15:30 Uhr
Oh ja, das gute alte Runnable … Ich wusste, dass ich etwas Offensichtliches verpasst habe! Sie sollten dies zu einer Antwort machen, da Sie meine Frage beantwortet haben 🙂
– Torsten Römer
7. August 2014 um 15:53 Uhr