一、回调函数定义:
首先说说什么叫回调函数?
在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就 称为回调。在调用接口时,需要严格的按照定义的参数和方法调用,并且需要处理函数的异步,否则会导致程序的崩溃。
这样的解释似乎还是比较难懂,这里举个简 单的例子:
程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。目的达到。
在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数。
二、回调函数实现:
先定义一个接口C
public interface C {
public void onCallBack(String textstring);
}
然后是B类
public class B {
private C c;
public void setCallBack(C c){
this.c = c;
}
public void Call(){
String string = "你好,我是B!";
this. c.onCallBack(string);
}
}
接着是A类监听B类动作并实现C接口
public class A implements C{
public static void main(String args[]) {
B b = new B();
b.setCallBack(new A());
b.Call();
}
@Override
public void onCallBack(String textstring) {
// TODO Auto-generated method stub
System.out.println(textstring);
}
}
实验结果:你好,我是B!