First they ignore you
then they ridicule you
then they fight you
then you win
    -- Mahatma Gandhi
Chinese => English     英文 => 中文             
随笔-165  评论-896  文章-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 山风小子 阅读(2271) 评论(21)  编辑  收藏 所属分类: Java

评论:
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-09 17:06 | 笨笨狗
汗,这种写法……
我还是用groovy算了,哈哈  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-09 17:24 | 山风小子
@笨笨狗
英雄所见略同 :)  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包)[未登录] 2007-04-09 18:19 | Dan
汗... 这种写法...
作为一个初学者... 已经开始在打退堂鼓了...  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-09 18:22 | 山风小子
@Dan
写法的确麻烦了点,不过挺清晰的,有得必有失嘛 :)  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-09 19:26 | BeanSoft
偶看着晕, java越做越复杂, 框架越来越多, 只会让它失去更多的用户.  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包)[未登录] 2007-04-09 19:33 | netfishx
闭包是很不错的语法特性,不过语言复杂性提高这么多,我宁可放弃java  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-09 19:47 | 山风小子
@BeanSoft
@netfishx
有强大的特性总比没有要好吧?
嫌麻烦的话,不用就可以了嘛。
不过要看的懂,Closure还是挺容易掌握的 :)  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-09 22:56 | liuganquan
不错的功能啊,javascript里面好用  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包)[未登录] 2007-04-09 23:22 | 冰峰
看不懂。。。  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包)[未登录] 2007-04-10 00:02 | 冰峰
要抓紧学习了!!  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-10 00:45 | αβγ
的确复杂  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-10 04:02 | 山风小子
@冰峰
不用着急,Java7还没出来呢 :)  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-10 04:02 | 山风小子
@αβγ
是啊,没办法,谁叫Java是强类型语言呢 :)  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-10 06:44 | crazycode
看着想哭,简洁优雅的Java被毁成这样了,没得混了。  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-10 09:13 | 山风小子
@crazycode
有得必有失 :)  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包)[未登录] 2007-04-12 17:05 | netfishx
@crazycode
本来优雅的闭包被java糟蹋成这样,我还想哭呢  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-16 10:33 | 交口称赞
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-09 19:47 | 山风小子
@BeanSoft
@netfishx
有强大的特性总比没有要好吧?
嫌麻烦的话,不用就可以了嘛。
不过要看的懂,Closure还是挺容易掌握的 :)

嫌麻烦的话,不用就可以了嘛。
问题要死有人为了显示自己的牛B到处乱用,
而你恰恰要调用他的程序,还不烦死你啊

  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-04-16 14:48 | 山风小子
@交口称赞
您说得有些道理 :)
但是我们要调用其他人写的程序,只要知道接口就可以了,
内部实现再怎么糟糕,我们都不关心的,
所以他乱用的话,苦的还是他自己,您说呢 :)  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-08-06 23:44 | 远离尘嚣
严重支持闭包,支持提升java学习难度,Java开发者已经饱和,不堪再有新人入行了... ...捍卫饭碗! ;)  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-08-08 21:07 | 山风小子
@远离尘嚣
哈哈~有趣的观点 :)  回复  更多评论
  
# re: Java7中的巨斧——被提议的Closure(闭包) 2007-08-16 22:35 | Matthew Chen
@山风小子
"内部实现再怎么糟糕,我们都不关心的,
所以他乱用的话,苦的还是他自己,您说呢 :) "
这么说不大对,我们用他的程序就一定要确保正确使用,无论是否是开源的,都是必须的,毕竟java不快,要优化的地方还是很多,即便是eclipse,swt,我们也不会什么底层都不知道就拿来用。  回复  更多评论
  

标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-04-10 04:12 编辑过
 
 
相关链接:
网站导航: