回调函数

Java回调函数详解

为了了解什么是回调函数,在网上查阅了如下资料,整理如下:

资料一:

首先说说什么叫回调函数?

    在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就称为回调。在调用接口时,需要严格的按照定义的参数和方法调用,并且需要处理函数的异步,否则会导致程序的崩溃。  

   

这样的解释似乎还是比较难懂,这里举个简单的例子:

    程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。目的达到。   

    在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数。

    假设我是程序员A,以下是我的程序a:

   public class Caller {   

       public MyCallInterface mc; 

       public void setCallfuc(MyCallInterface mc){

              this.mc= mc;    

       }

         public void call(){

            this.mc.method();

       }

   }   

     我还需要定义一个接口,以便程序员B根据我的定义编写程序实现接口。

   public interface MyCallInterface {

          public void method();

   }    

    于是,程序员B只需要实现这个接口就能达到回调的目的了:

   public class B implements MyCallInterface {

         public void method() {

                 System.out.println("谁来调用我啊。好寂寞!!");   

         }

         public static void main(String args[]) {

                Caller call = new Caller();

                call.setCallfuc(new B());      

                call.call();   

         }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值