1.函数式编程的思想
- 函数就是有输入量和输出量的计算方案,也就是拿什么东西做什么事情,强调做什么,而不是以什么方式去做(结果);
- 面向对象过分强调必须通过对象的形式来做事情(过程)。
- Lambda表达式是JDK 1.8之后加入的。
- ->
匿名内部类 Lambda表达式
- 匿名内部类的好处:省去了匿名内部类的定义;
- 匿名内部类的弊端:语法太复杂。
2.Lambda标准格式
3.Lambda省略格式
凡是根据上下文可以推断出来内容,都可以省略
包括:
- 括号中的参数列表的数据类型可以省略不写;
- 括号中的参数列表只有一个参数,数据类型和“()”都可以省略不写,但没有参数不能把“()”省略;
- 如果{}中的代码只有一行,无论是否有返回值,"{}"、"return"和";"都可以省略不写,但这三者要省略都省略,要不省略都不省略。
4.Lambda使用前提
- 使用Lambda必须具有接口,且要求接口中有且只有一个抽象方法。
- 使用Lambda必须具有上下文推断,也就是方法的参数和局部变量的类型必须为Lambda对应的接口类型,才能使用Lambda表达式表示该接口的实例。
- 有且仅有一个抽象方法的接口被称为函数式接口。