它是为Java计划的最受关注的功能之一:闭包。我们许多人一直向往他们。我们中的某些人(包括我在内)变得有点急躁,并转向脚本语言来填补空白。
但是,一旦闭包最终到达Java:它们将如何影响Java社区?以VM为目标的脚本语言的发展是否会减慢爬行速度,保持不变或兼容?人们是否会蜂拥至新的闭包语法,从而将Java代码基础全面转换为功能更结构化的实现?我们会不会只看到Java中散布着闭包?对工具/ IDE支持的影响是什么?性能如何?最后,与其他越来越流行的语言相比,对于Java继续采用这种语言意味着什么?
为了提供最新提议的Java Closure语法规范之一的示例:
public interface StringOperation {
String invoke(String s);
}
// ...
(new StringOperation() {
public invoke(String s) {
new StringBuilder(s).reverse().toString();
}
}).invoke("abcd");
会成为 ...
String reversed = {
String s =>
new StringBuilder(s).reverse().toString()
}.invoke("abcd");
[来源:http://tronicek.blogspot.com/2007/12/closures-closure-is-form-of-anonymous_28.html]