Tor*_*mer 67 java lambda java-8 method-reference
目前正在进入Java 8 lambda表达式和方法引用.
我想传递一个没有args且没有返回值的方法作为另一个方法的参数.这就是我这样做的方式:
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();
}
Run Code Online (Sandbox Code Playgroud)
我知道有一组预定义功能接口在java.util.function诸如Function<T,R>,但我没有找到一个不带任何参数,而不是产生结果.
Joo*_*gen 57
真的没关系; Runnable也会这样做.
Consumer<Void>,
Supplier<Void>,
Function<Void, Void>
Run Code Online (Sandbox Code Playgroud)
obe*_*bey 40
你也可以像这样传递lambda:
public void pass() {
run(()-> System.out.println("Hello world"));
}
public void run(Runnable function) {
function.run();
}
Run Code Online (Sandbox Code Playgroud)
这样,您将直接传递lambda作为方法.
| 归档时间: |
|
| 查看次数: |
76449 次 |
| 最近记录: |