Currently getting into Java 8 lambda expressions and method references.
I want to pass a method with no args and no return value as argument to another method. This is how I am doing it:
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();
}
I know there is a set of predefined functional interfaces in java.util.function
such as Function<T,R>
but I didn't find one with no arguments and not producing a result.
It really does not matter; Runnable
will do too.
Consumer<Void>,
Supplier<Void>,
Function<Void, Void>