任何人都可以简单地描述3个闭包提案与Java当前状态之间的差异吗?

时间:2010-01-22 12:32:42

标签: java closures java-7 specifications

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

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

因此,如果有人从一开始就跟踪java关闭的进度,那么请在很短的时间内描述所有3个提案及其当前状态。

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

2 个答案:

答案 0 :(得分:6)

如果我没记错的话

CICE只是一种语法糖,可以更容易地创建一个看似闭包的匿名类。

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

FCM是一个额外的提案,试图在两者之间达成妥协,提出完整的封闭提案,但语法更好,没有BGGA的一些更有争议的特点。

目前的提案可以在http://www.javac.info/closures-v06a.htmlhttp://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次更新。