人们对Java7中是否应该添加Closure这一特性闹得沸沸扬扬,由于在下习惯了在Groovy中用Closure优雅地进行编程,深深体会到Closure的强大,始终不理解为什么他们要为添加这么强大的特性而争论不休。出于好奇,我搜了一下这Java中可能出现的褒贬不一的Closure,当我看到提议中的Closure的语法,有点吃惊,为何?看看代码的复杂程度就知道了:
变量声明:
{
int
,String
=>
Number
throws
IOException} xyzzy;
将求和功能赋值给变量plus:
{
int
,
int
=>
int
} plus
=
{
int
x,
int
y
=>
x
+
y};
循环遍历map中的entry:
<
K,V,
throws
X
>
void
for
eachEntry(Map
<
K,V
>
map, {K,V
=>
void
throws
X} block)
throws
X {
for
(Map.Entry
<
K,V
>
entry : map.entrySet()) {
block.invoke(entry.getKey(), entry.getValue());
}
}
Java5中添加的Generic(泛型)就已经蛮麻烦了,东个尖括号< >西个尖括号< >。Java7也不甘示弱,东个大括号{ }西个大括号{ }。看来Java拥有巨斧后着实会强大许多,而Java程序员也不得不练就能挥舞巨斧的臂膀和身躯。同道们,让我们一起修炼吧!
参考资料:
Closures for the Java Programming Language (v0.5)附:
Groovy轻松入门——Grails实战之GORM篇
posted on 2007-04-09 16:29
山风小子 阅读(6053)
评论(21) 编辑 收藏 所属分类:
Java