我正在阅读将在Java 7中出现的闭包。
我有点困惑,因为一方面有很多很好的文章描述了新的java闭包。但另一方面,有3种不同的规格,有些文章只是过时了,因为描述的不是最新的提案。
因此,如果有人从一开始就跟踪java关闭的进度,那么请在很短的时间内描述所有3个提案及其当前状态。
我想知道闭包的另一件事是,是否只存在一个开发线或正在开发不同版本(例如,来自Sun,来自Google,来自Apache等的闭包)?
答案 0 :(得分:6)
如果我没记错的话
CICE只是一种语法糖,可以更容易地创建一个看似闭包的匿名类。
BGGA是一个非常强大的提议,它不仅允许真正的闭包,而且还允许语法定义看起来像新语法元素的结构(也就是使用(Closable){block})。
FCM是一个额外的提案,试图在两者之间达成妥协,提出完整的封闭提案,但语法更好,没有BGGA的一些更有争议的特点。
目前的提案可以在http://www.javac.info/closures-v06a.html和http://www.javac.info/closures-v06b.html找到,其中A部分是简单的全部功能,B部分是从BGGA获得的一些更强大的功能。
答案 1 :(得分:2)
根据我的理解,Project Lambda,将Java语言(其中一些是闭包,一些闭包是lambdas)添加到Java语言的计划更改将是旧提议的混合。目前提供的最新信息是0.1 draft of the specification。要及时了解进度,您可以按照Mark Reinhold's次更新。