1. 函数式编程
函数式编程(Functional programming)是一种思想特点。
在面向对象当中,我们先找对象,让对象做事情。例如下面的数组排序。
函数式编程思想,忽略面向对象的复杂语法,强调做什么,而不是谁去做。
Lambda表达式就是函数式思想的体现。
2. Lambda表达式
Lambda表达式是JDK8开始后的一种新的语法形式。
注意点:
-
Lambda表达式可以用来简化匿名内部类的书写
-
Lambda表达式只能简化函数式接口的匿名内部类的写法
-
函数式接口:
有且仅有一个抽象方法的接口叫作函数式接口,接口上方可以加**@FuunctionalInterface**注解
2.1 匿名内部类
我们知道调用一个方法时,如果方法的形参是一个接口,那么我们要传递这个接口的实现类对象。而如果实现类对象只要用到一次,我们没有必要新建一个类实现该接口,可以使用匿名内部类的形式进行书写。
//一个接口
interface Swim {
public abstarct void swimming();
}
//定义一个方法method,形参为上面的接口
public static void method(Swim s) {
s.swimming();
}
2.2 Lambda表达式改写
函数式接口:有且仅有一个抽象方法的接口叫作
2.3 Lambda表达式的省略写法
省略规则:
- 参数类型可以省略
- 如果只有一个参数,参数类型可以省略,同时()也可以省略
- 如果Lambda表达式的方法体只有一行,大括号、分好、return可以省略不写。需要同时省略
2.4 简单实例
3. 总结
内容来自黑马程序员。