基本概念
Java8 lamda(λ)表达式:使用lamda表达式可以简略去【函数式接口实现、新建内部类、实例化】这些过程,直接实现了接口抽象方法的重写和使用。
- 替代匿名内部类。
- 避免匿名内部类定义过多
- 函数式编程。
适用前提:函数式接口。
函数式接口Functional Interface:一种接口,只包含【唯一一个】抽象方法
1 | // Runnable接口属于函数式接口 |
语法简化内容:
- 省略参数类型(多个参数的数据类型,要么都去掉,要么都保留)
- 省略参数小括号(仅一个参数适用)。
- 省略方法体(仅一句代码适用,JS箭头函数要求仅一句且作为返回值时省略,lamda表达式不考虑返回值)。
用途示例
JS箭头函数,是方法的简写,省略了function、作用域挂在直属父类对象,方法匿不匿名均可。
1 | function add(x,y) { |
lamda表达式,是对【实现implement 函数式接口的类A,实例化类A,调用A实例方法】这整个过程的简写,是对匿名类实例化方法调用的简写。
1 | public class LamdaTest { |
语法示例
1 | /** |