日期:2014-05-20  浏览次数:20637 次

closure and callback
java中关于closure的语法功能一直是被讨论的焦点。关于closure的讨论,前段时间一直比较激烈。在closure和callback之间,觉得界限并不是那么明显。
引用:
      1.   //先有個   interface,代入   T   回傳   R    
      2.   public   interface   Converter <R,   T>   {    
      3.           public   R   invoke(T   arg)   ;    
      4.   }    
      5.      
      6.   //然後是   Collections   上   convert   的工具   method:    
      7.   public   static   <T,R>   List <R>   convert(List <T>   originals,   Converter <R,   T>   converter)   {    
      8.           List <R>   converteds   =   new   ArrayList <R> ();    
      9.           for(   T   t   :   originals   )   {    
    10.                   converteds.add(converter.invoke(t));    
    11.           }    
    12.           return   converteds;    
    13.   }    


#   //AIC   寫法    
#   public   List <Integer>   convertStringToInteger(List <String>   strings)   {    
#           return   Collections.convert(strings,   new   Converter <Integer,   String> ()   {    
#                   public   Integer   invoke(String   orignal)   {    
#                           return   Integer.parseInt(orginal)   ;    
#                   }    
#           });    
#   }    
--------------------------
原文地址为:http://www.javaworld.com.tw/roller/page/ingramchen?entry=2007_1_1_WhyAddClosureInJava7


在我看来,这个AIC实现的closure(文中所说的),我觉得应该是一个回调函数,因为他在调用过程中并没   有调用   该函数块外面的资源,而是调用了该匿名函数内的方法。所以   更应该说   是一个callback调用。

不知道我的理解是否正确




------解决方案--------------------
我记得closure就是指的是被return的那个内部类实例,因为这个内部类实例可以携带更多的信息,所以叫closure,也就是 "闭包 ".
而callback指的是这种工作方式吧.