觉得callback这个在c++里比较明确,传个函数指针就行了只要自己没有明确调用那个函数但通过别的方式调用了就算callback,如java里通过接口调子类函数,还有reflect,但总觉得有点牵强。 个人理解,呵呵

解决方案 »

  1.   

    http://dev.csdn.net/Develop/article/30%5C30867.shtm
    这个是我搜索出来的
    不知道有没有用?
      

  2.   

    这个我研究过,下面是个简单的例子,估计java的事件处理机制就是这么做的。
    import java.io.*;
    interface call
    {
    public void callme();
    }class inst implements call
    {
    public void callme()
    {
    System.out.println("Call inst");

    }


    }public class callback
    {
    static void  run(call cc)
    {
    cc.callme();
    }

    public static void  main(String[] args)
    {

    run(new inst());

    }

    }
      

  3.   

    一个更为完整的实现。
    import java.io.*;
     interface call
    {
      
    public void proc(sender src,int wparam);
    }class sender
    {
    protected call ie;

    public sender(call event)
    {
    ie=event;
    }
    public void nofify(int wparam)
    {

    ie.proc(this,wparam);


    }




    }class receiver implements call
    {

    public void proc(sender src,int par)
    {
       
     System.out.println(src);
     System.out.println(par);

    }


    }
    class sandr extends sender
    implements call
    {        
    public sandr(call event)
    {
    super(event);

            
    }
        public void proc(sender src,int par)
    {
         
     System.out.println(src);
     System.out.println(par);

    }

    }
    public class callback
    {


    public static void  main(String[] args)
    {
       sandr s1=new sandr(null);
       sandr s2=new sandr(s1);
       s2.nofify(10);
       s1.proc(s2,10);
       s2.proc(s1,10);

    }

    }