Lambda表达式简介
Lambda表达式,也可称为闭包,它是推动Java 8发布的最重要新特性。Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用Lambda表达式可以使代码变的更加简洁紧凑。Lambda表达式是一种匿名函数(对Java而言这并不完全正确,但现在姑且这么认为),简单地说,它是没有声明的方法,也即没有访问修饰符、返回值声明和名字。开发者可以将其当做一种速记,在你需要使用某个方法的地方写上它。当某个方法只使用一次,而且定义很简短,使用这种速记替代之尤其有效,这样,你就不必在类中费力写声明与方法了。
由于Lambda表达式的结果就是被当成对象,因此程序中完全可以使用Lambda表达式进行赋值。
Java中的Lambda表达式的书写格式如下:
1 | (parameters) -> expression |
关于格式有几点特性需要注意:
可选类型声明:不需要声明参数类型,编译器可以统一识别参数值
可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号
可选的大括号:如果主体包含了一个语句,就不需要使用大括号
可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值
Lambda表达式的简单例子
1 | // 1. 不需要参数,返回值为 5 |
Lambda表达式实践
1 | // Java 7中编写线程的代码 -- 匿名内部类 |
1 | //Java 7中当我们对一个集合进行排序时 |