java 回调函数
首先说说什么叫回调函数,在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 }