CallBack回调

来源:互联网 发布:matlab怎么导入数据 编辑:程序博客网 时间:2024/05/18 02:07

 

http://www-128.ibm.com/developerworks/cn/linux/l-callback/?ca=dwcn-newsletter-linux

 

 

package test;
interface ICallBack{void postExec();} 

/*相当于副线程,执行时得到了主线程传入的地址*/
class A{                 
   private ICallBack callBack;  
   public void setCallBack(ICallBack callBack){  //A拥有setCallBack() 
     this.callBack=callBack;  
   }  
   /**虽然没有实现接口ICallBack,但仍可用接口的方法,
     接口是在CallBack中实现的,其实根本不必关心它在哪里实现的**/
   public void doSth(){callBack.postExec();//随时回调A实现接口ICallBack的方法  
   }  
 } 

 /**CallBack实现接口ICallBack(),运行时调用A的setCallBack(),相当于主线程**/
public class CallBack implements ICallBack{
 
 public void postExec(){System.out.println("callback");};
 
    public static void main(String[] args){
             A foo=new A();
             foo.setCallBack(new CallBack()); //自身传入参数,相当于将自身指针传给了foo
             foo.doSth();//此时foo中已经有了CallBack对象
                    }  
            } 

原创粉丝点击