我目前正在学习Java中的Lambda表达式.根据我的理解,它是一个代码块,我们可以传递,以便以后执行.但是当我们想要稍后执行代码时,我无法想到示例.
这有用的各种场景是什么?Lambda Expression和Functional接口之间的联系是什么?
Lambda expression当我们想要稍后执行一次或多次代码块时使用A. 使用它的实际意义是deferred execution以后执行代码的原因有很多,例如:
Lambda表达式和功能接口之间的连接
A Functional interface是一个只有一个abtract方法的接口(尽管它可以有多个默认方法).只要期望Functional Interafce的对象,我们就可以提供lambda表达式.考虑一个我们想要执行n次动作的示例.
execute(n, () -> System.out.println("Java Rocks"));
Run Code Online (Sandbox Code Playgroud)
要接受lambda,方法签名的第二个参数必须是Functional Interface,在上面的例子中我们可以使用例如Runnable.
public static void execute(int n, Runnable action) {
for(int counter = 0; counter < n; counter ++) {
action.run();
}
}
Run Code Online (Sandbox Code Playgroud)
这里需要注意的是Lambda Expression在action.run()被调用时执行.您可以在此处阅读有关Lambda Expression的更多信息.
| 归档时间: |
|
| 查看次数: |
849 次 |
| 最近记录: |