19

有人知道,Java 7 中是否会出现闭包?

4

6 回答 6

19

在创建 Java SE 7 JSR(可能是由 Danny Coward)创建专家组并选择内容之前,它是未知的。

我的 Java 7 页面是一个很好的关于 Java 7 的链接集合,并且包含所有闭包提案和博客条目的链接:

http://tech.puredanger.com/java7#closures

我维护了一个 Java 7 链接博客,您可以在其中找到关于闭包和其他内容的链接:

http://java7.tumblr.com

如果您想要我的意见,您可能会发现我的 Java 7 预测博客文章也很有趣:http: //tech.puredanger.com/2008/08/02/java7-prediction-update/

更新:Mark Reinhold 于 12 月 8 日在 Devoxx 上表示,由于对如何实现缺乏共识,闭包不会包含在 Java 7 中。

于 2008-09-22T19:20:52.887 回答
13

在 Devoxx 2008 上,Mark Reinhold 明确表示Java 7 中不会包含闭包。


等待!闭包包含在 Java 7 中。Mark Reinhold在 Devoxx 2009 上宣布了这一逆转。


保护它!闭包(lambda 表达式)已推迟到 Java 8。请关注Project Lambda (JSR 335)以获取更多信息。

于 2009-12-30T18:56:29.023 回答
7

目前有几个竞争提案,BGGACICE等。不幸的是,关于最佳方法的激烈辩论仍然存在。因此,由于接受过程的保守性质,此时闭包不太可能进入 Java 7。

这里的关键问题是,在不无意中引入显着复杂性的情况下,向预先存在的语言添加功能可能非常困难。这就是 Java 1.5 中泛型的经验,许多人担心它会随着闭包的引入而复杂化。

我的建议是,如果你真的想使用像闭包这样的现代语言特性,但又希望留在 Java 生态系统中,你应该看看Scala

于 2008-09-22T19:21:34.367 回答
3

Groovy 是我见过的最好的 Java 替代品,它包括动态语言的特性,包括闭包、运行时类扩展等。虽然 Ruby 有一点设计优势,恕我直言,我不得不说 Groovy 编译成 Java 字节的事实-无需任何接口代码的代码和与 Java 交互是一个不可忽视的巨大优势。

http://groovy.codehaus.org

于 2008-09-22T19:47:50.543 回答
2

显然闭包不会出现在 Java 7 中。请参阅thisthis

于 2009-02-10T16:31:36.307 回答
1

闭包不会在 Java 7 中明确出现,但是如果您正在寻找更轻的解决方案来在 Java 中使用闭包,请查看它们是如何在 lambdaj 库中实现的:

http://code.google.com/p/lambdaj/wiki/Closures

于 2009-09-12T07:42:23.563 回答