引入
Lambda
表达式是一个可传递的代码块,可以在以后执行一次或多次。在 Java 中传递一个代码段并不容易,不能直接传递代码段。Java 是一种面向对象语言,所以必须构造一个对象,这个对象的类需要有一个方法能包含所需的代码。
在其他语言中,可以直接处理代码块。Java 设计者很长时间以来一直拒绝增加这个特性。毕竟,Java 的强大之处就在于其简单性和一致性。如果只要一个特性能够让代码稍简洁一些,就把这个特性增加到语言中,这个语言很快就会变得一团糟,无法管理。不过,在另外那些语言中,并不只是创建线程或注册按钮点击事件处理器更容易;它们的大部分 API 都更简单、更一致而且更强大。在 Java 中,也可以编写类似的 API 利用类对象实现特定的功能,不过这种 API 使用可能很不方便。
就现在来说,问题已经不是是否增强 Java 来支持函数式编程,而是要如何做到这一点。设计者们做了多年的尝试,终于找到一种适合 Java 的设计——Lambda
表达式。
表达式语法
基本形式:参数,箭头(->),表达式。
// 基本形式
(String first, String second) -> first.length() - second.length()
// 多表达式语句块
(String first, String second) ->
{
if (first.length() < second.length())
return -1;
else if (first.length() > second.length())
return 1;
else
return 0;
}
// 没有参数
() -> {
for (int i = 100; i >= 0;<