Lambda 表达式的作用
从Java 8
开始,Java
开始提供Lambda
表达式,这里不再介绍Lambda
表达式怎么用,只总结Lambda
表达式的作用:
- 使用更清楚简洁的一个表达式代替一个函数式接口
- 减少代码量
- 代码意图更突出
- 对集合数据
Collection
的迭代,过滤,抽取更容易,代码也更简洁
- 使用变量记住一段逻辑
- 任务逻辑传递 (目的就是传递一段动态的任务逻辑交给执行者执行)
- 回调逻辑传递 (目的是调用方发生某个事件之后进行回调)
虽然在能力强弱,表现形式,实现方式和原理上都有诸多不同,但从效果和应用场景来看,在一些常见的编程语言中,以下语言工具可以跟Java 8 Lambda
表达式起到类似的功能 :
1. Java
的匿名内部类
2. Javascript
的函数/闭包/箭头函数
3. C/C++
的函数指针
4. C#
的Lambda
表达式
我的理解是,java是面向对象的,但是为了写起来方便,需要向一个方法传递一个方法,但是实际上并不能传递方法,而是传递了只有一个抽象方法的接口的实现类的对象,这样就做到类似传递方法了,其实lanmada就是一个对象