First they ignore you
then they ridicule you
then they fight you
then you win
    -- Mahatma Gandhi
Chinese => English     英文 => 中文             
随笔-221  评论-1047  文章-0  trackbacks-0
人们对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