我目前正在学习Java 8中的lambda表达式和方法引用。
我想将一个没有参数和返回值的方法作为参数传递给另一个方法。这是我的做法:
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();
}
我知道在java.util.function
中有一组预定义的函数接口,例如Function<T,R>
,但我没有找到一个不带参数且不产生结果的接口。
Supplier<Void>, Function<Void, Void>
。 - Joop Eggen