11

我正在阅读将出现在 Java 7 中的闭包。

我有点困惑,因为一方面有很多很好的文章描述了新的 java 闭包。但另一方面,有 3 种不同的规格,有些文章只是过时了,因为描述的不是最新的提案。

因此,如果有人从一开始就跟踪 Java 闭包的进展,那么请尽快概括地描述所有 3 个提案及其当前状态。

关于闭包,我想知道的另一件事是是否只有一个开发线存在或正在开发不同的版本(例如来自 Sun、Google、Apache 等的闭包)?

4

2 回答 2

6

如果我没记错的话

CICE 只是一种语法糖,可以更轻松地以一种看起来像闭包的方式创建匿名类。

BGGA 是一个非常强大的提议,它不仅允许真正的闭包,还允许使用语法来定义看起来像新语法元素的结构(又名 using(Closable){block})。

FCM 是一个额外的提议,它试图成为两者之间的折衷方案,具有完全封闭的提议,但语法更好,并且没有 BGGA 中一些更具争议性的特性。

当前的提案可以在http://www.javac.info/closures-v06a.htmlhttp://www.javac.info/closures-v06b.html 找到,其中 A 部分是简单的完整 cosures,而部分B 是从 BGGA 中提取的一些更强大的功能。

于 2010-01-22T20:53:38.340 回答
2

据我了解,Project Lambda将 lambdas(其中一些是闭包,一些闭包是 lambdas)添加到 Java 语言的计划更改将是旧提案的混合。目前关于该提案的最新信息是规范的 0.1 草案。要随时了解进度,您可以关注Mark Reinhold 的更新。

于 2010-01-24T17:16:16.277 回答