有人知道,如果关闭将在Java 7中吗?
答案 0 :(得分:19)
在创建Java SE 7 JSR之前(大概是由Danny Coward创建)并且已经形成专家组并且选择了内容,这是未知的。
My Java 7页面是一个很好的Java 7链接集合,它包含所有闭包提案和博客条目的链接:
http://tech.puredanger.com/java7#closures
我维护一个Java 7链接博客,您可以在其中找到有关闭包和其他内容的链接:
如果您需要我的意见,您可能会发现我的Java 7 Predictions博客文章也很有趣: http://tech.puredanger.com/2008/08/02/java7-prediction-update/
更新:Mark Reinhold在去年12月的Devoxx上表示,由于缺乏对如何实施的共识,闭包将不会包含在Java 7中。
答案 1 :(得分:13)
在Devoxx 2008上,Mark Reinhold made it clear关闭将不会包含在Java 7中。
等待!闭包将包含在Java 7. Mark Reinhold announced this reversal的Devoxx 2009中。
保护!闭包( lambda表达式)已延迟到Java 8.请关注Project Lambda (JSR 335)以获取更多信息。
答案 2 :(得分:7)
目前有几个相互竞争的提案,BGGA,CICE等。不幸的是,激烈的辩论仍然是最好的方法。因此,由于接受过程的保守性,此时关闭不太可能使其成为Java 7。
这里的关键问题是,在预先存在的语言中添加功能非常困难,而不会无意中引入显着的复杂性。这是Java 1.5中Generics的经验,许多人担心它会与闭包的引入相结合。
我的建议是,如果你真的想要访问像闭包这样的现代语言功能,但希望保留在Java ecosysteym中,你应该看一下Scala。
答案 3 :(得分:3)
Groovy是我见过的最好的Java替代方案,其中包括动态语言的功能,包括闭包,运行时类扩展等。虽然Ruby有一些轻微的设计优势,但我不得不说Groovy编译的事实到Java字节码并与Java交互而没有任何接口代码是一个不可忽视的巨大优势。
答案 4 :(得分:2)
答案 5 :(得分:1)
关闭不会在Java 7中明确存在,但是如果你正在寻找一个更轻的解决方案来在java中关闭,请查看它们是如何在lambdaj库中实现的: