期待哦. 呵呵.

解决方案 »

  1.   

    在Javascript里。如果你创建了一个内嵌函数就是创建了一个闭包。
    回调:被调用方在接口被调用时也会调用对方的接口
      

  2.   

    http://www.cnblogs.com/Jifangliang/archive/2008/08/05/1260602.html
    希望有帮助
      

  3.   

    回调就是你写的函数不是你调用,而有系统来调用。如果你写过windows程序,就会知道了。
      

  4.   

    回调函数是Windows的一个API机制,只是一个函数指针,是留给其他程序实现的接口,它不但可以被Windows调用,还可以被一些DLL或自己写的程序调用,参数和返回值应该遵循SDK的函数说明,调用的时候函数以指针的形式传递过去。
    关于闭包希望这个对你有用:http://www.ibm.com/developerworks/cn/java/j-jtp04247.html
      

  5.   

    我的理解 回调: a过程有函数a1, 希望调用b1函数, b1可调用过程a1.
     闭包: 函数中包含另外一段过程
      

  6.   

    此闭包非彼闭包吧..
                              现在Ruby Python 里面都有闭包..名曰. closuer. Java 7中很有可能会加入.  所以先研究下..回调再Java中如何实现? 还是callback仅仅是Windows程序的专利? 就如同 handle.
      

  7.   

    Java 中的闭包我感觉就是把函数作为参数进行引用,也就是在 JDK 7 如果能加入闭包的话,
    那么,一个函数就能作为方法的参数。下面这个是用闭包原型编译器编译、运行的代码:import java.util.ArrayList;
    import java.util.List;public class Test {    public static void main(String[] args) {        List<{ int, int => int }> list = new ArrayList<{ int, int => int }>();        list.add({ int x, int y => x + y });
            list.add({ int x, int y => x - y });
            list.add({ int x, int y => x * y });
            list.add({ int x, int y => x / y });        for(int i = 0; i < list.size(); i++) {
                test(list.get(i)).invoke("list[" + i + "] =");
            }
        }    private static { String => void } test({ int, int => int} func) {
            return { String s => System.out.println(s.trim() + " " + func.invoke(6, 3)); };
        }
    }输出结果:list[0] = 9
    list[1] = 3
    list[2] = 18
    list[3] = 2实现的逻辑很简单,就是输出 6 和 3 进行四则运算的结果。注意一下 test 方法的参数,这是一个闭包函数,作为 test 方法的参数。
    在当前的闭包原型编译器的语义下,名为 func 的闭包函数中,前面两个
    int 是这个闭包函数的参数,=> 后面的是这个闭包函数的返回值。同理,test 方法的返回值也是一个闭包函数。闭包函数采用 invoke 进行调用,invoke 方法的参数是一个变参,具体的
    参数个数依照闭包函数的参数个数。
      

  8.   

    在JavaScript里面确实有闭包的概念,创建嵌套函数的时候也就产生了闭包,
    回调的意思就是在接口定义好逻辑之后,不是你来调用,而是外部程序来帮你调用,
    你看Spring的JdbcTemplate,HibernateTemplate,到处体现了接口与回调的思想