回调函数:
例子:我是老板(Boss),我有一部电话叫back,现在我安排了一个任务给员工(Emp),让他给我打印一份报表(doPrint),打印好报表后再通过我的电话back告诉我。那么流程就很清晰了
public class Boss{ //我是老板
Emp emp = new Emp();//现在我new一个员工出来
emp.doPrint(); //我现在让这个员工去给我打印一份报表,报表打印好后直接通过back电话通知我。
public void back(){
System.out.println("老板报表打印好了,请你放心!");//这个是我的电话
}
}
emp.doPrint();//报表打印好后
back(); //直接通过back电话告诉老板,这种写法不是回调
那么我怎么让员工emp.doPring();打印好报表后打电话给我呢。可以想象一下就是在emp.doPrint();打印报表这个方法中再次调用Boss的电话
public class Emp(){ //员工
public void doPrint(){ //员工开始打印报表了
System.out.println("老板我报表打印好了");//这个时候员工把报表打印好了,再通过老板的电话通知老板,怎么做呢?
Boss boss = new Boss();
boss.back(); //这就是通过老板的电话在我打印好了以后,告知老板
}
}
这样就实现了我doPrint();//报表打印好后,回调Boss的电话通知Boss,这就是回调
以上都是伪代码,只是为了说明什么是回调,但是在实际应用中,都是利用接口设置回调函数的