首先说说什么叫回调函数,在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就称为回调。
简单的说,程序员只需根据接口来编写相应的业务逻辑,然后通过调用dll即可调用自己的函数
举个例子:
程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。目的达到。在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数。
1 程序A 2 public class Caller { 3 private MyCallInterface mc; 4 5 public Caller() { 6 } 7 8 public void setCallfuc(MyCallInterface mc) { 9 this.mc = mc;10 }11 12 public void call() {13 mc.fuc();14 }15 }16 17 18 public interface MyCallInterface {19 public void fuc();20 }21 22 程序员B通过实现这个接口,将自己注册给A,当调用完A后,A会回调B中的函数23 public class Callee implements MyCallInterface {24 25 public void fuc() {26 System.out.println("in Callee's fuc()");27 }28 29 public static void main(String args[]) {30 Caller call = new Caller();31 call.setCallfuc(new Callee());32 call.call();33 }34 35 }