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调用。不知道我的理解是否正确