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调用。不知道我的理解是否正确
引用:
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调用。不知道我的理解是否正确
而callback指的是这种工作方式吧.