lambda表达式
1.函数式编程思想
面向对象:根据多个对象中共有的属性和行为抽取出一个类,类去创建对象,对象调用方法。
函数式编程思想:
不去关心是哪个对象去做的,不关心怎么做的,只需要一个输入值,然后得到一个结果。
在java中函数式编程思想的体现就是lambda表达式。
可以把lambda表达式当作匿名内部类的简化版格式。(底层其实有一些区别)
- 当接口作为方法的参数时,我们实际要传入一个接口的实现类的对象,之前我们使用匿名内部类来简化这 个过程,但是匿名内部类的格式过于繁琐,不易阅读,所以,在jdk1.8时提供了lambda的语法在某些情况 下可以替代掉匿名内部类。
2.使用前提
1)接口必须是函数式接口(接口中只能有一个抽象方法)。
2)要具有上下文推断。
3.格式:
()->{}
():接口中抽象方法的参数
->:没有特殊含义,就是一个传递作用。
{}:抽象方法的方法体的重写。
4.省略规则
1)小括号中方法的参数类型可以省略。
2)当小括号中只有一个参数时,小括号可以省略。
3)当方法体中只有一条语句时,return,语句后的分号,{}都可以省略。