当今世界主流编程语言无不吸纳强大的闭包概念
但有个例外
它就是Java
数年来
Java语言中增加闭包特征的工作看起来毫无进展
早在年之前Scala语言和TypeSafe框架的作者Martin Odersky和Phillip Wadler发布了实验性的Pizza项目由此人们开始试图将闭包纳入编程语言的基本特征之一尽管这看起来有点过于复杂Java社区大概在年就有了接纳闭包概念的想法但由于Oracle对Sun微系统公司的匆忙收购Java被冷落Java语言新版本的发布不断的被推迟
但在Java中事情有了很大的变化Java语言终于为Java编程部队配备了闭包的武器也许这是Java编程语言有史以来最重要的一次升级Oracle的Java语言架构师Brian Goetz说他指出在Java中引入闭包概念对Java程序开发方法的影响甚至会大于Java中引入的泛型特征对编程方式带来的影响就像泛型能使开发人员对数据类型进行抽象Lambda的目的是让程序员能够对程序行为进行抽象
Lambda这个名称来自于把闭包绑定到Java编程语言的Lambda项目Lambda以及闭包的引入能做些什么?你可以这样想它能够让程序员把一段程序代码当做数据一样使用一个方法可以像定义和使用一个变量那样的方式被定义和使用定义出的方法可以被当作参数传递到其它方法内就像它们是一个对象实例或一个类型数据一样看起来这好像也没什么但实际上它影响巨大Goetz说这将从根本上改变我们开发java程序的方式
我们等待了太久但随着Java的发布Lambda终于成为Java规格说明书里的正式特征之一一种由于过于复杂而最初被传统程序员放弃的语法将最终成为一种每个现代Java应用程序里都能看到的标准技术