当前正在学习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>
。