Java 7中的闭包

Sch*_*jer 29 java syntax closures java-7

我听说可以在下一个Java标准中引入关闭,该标准计划在明年夏天左右发布.

这种语法是什么样的?

我在某处读到,在Java中引入闭包是一个比java中的泛型更大的变化.这是真的吗?利弊?

(到现在我们肯定知道闭包不会包含在下一个Java版本中)

要么

编辑:http://puredanger.com/tech/2009/11/18/closures-after-all/:D

edit2:重新思考JDK7:http://blogs.oracle.com/mr/entry/rethinking_jdk7

edit3:没有时间可以丢失!:http://blogs.oracle.com/mr/entry/quartet

Ste*_*wig 17

看看http://www.javac.info/.

看起来这就是它的外观:

boolean even = { int x => x % 2 == 0 }.invoke(15);
Run Code Online (Sandbox Code Playgroud)

其中{ int x => x % 2 == 0 }位关闭.

  • 纠正我,如果我错了,但是一个闭包需要一个开放的术语(读取自由变量)本身就是一个闭包:)(?) (4认同)
  • @Schildmeijer:对我来说它看起来也不像是一个闭包,它说它是一个lambda表达式. (4认同)
  • 生活在2011年,让我觉得Java 7不会有封闭......如果是这样,Java 7就没必要了. (4认同)

Jon*_*eet 13

这实际上取决于引入的内容,以及它是否会被引入.有许多不同大小的封闭提案.

有关提案和各种博客文章,请参阅Alex Miller的Java 7页面.

我个人喜欢看封闭 - 它们很漂亮而且非常有帮助 - 但是我担心一些建议非常多毛.


Dón*_*nal 11

在2009年11月,在这个问题上出现了令人惊讶的转变,现在将关闭 Java 7.

更新

Java 7中的闭包(AKA lambdas表达式)没有发生.它们最终在2014年的第一版Java 8中添加.