回调函数的理解:
某天,我打电话向你请教问题,当然是个难题,^_^,你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后打手机通知我,这样,我就挂掉电话办其它事情去了。过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理。故事到此结束。这个例子说明了“异步+回调”的编程模式。其中,你后来打手机告诉我结果便是一个“回调”过程;我的手机号码必须在以前告诉你,这便是注册回调函数;我的手机号码应该有效并且手机能够接收到你的呼叫,这是回调函数必须符合接口规范。
回调函数的应用大多在于异步的应用。
//回调的基本语法
(程序A),其中预留有回调函数接口,并封装好了该程序,程序员B要让A调用自己的程序call方法
//程序A
public class A
{
public void call(MyCallBack mcb)
{
//回调实现【注意该地方的实现一般都是由异步线程来完成,因为一般现在是完成不了的,否则不会异步放到外面去】
mcb.method();
}
//回调接口,JAVA中使用接口回调
public interface MyCallBack
{
void method();
}
}
//程序B
public class B{
public void fun() { A a=new A(); //a.call暴露在了外面
a.call(new A.MyCallBack() {
public void method() {
System.out.println("回调"); } } );
}
}