回调函数

回调函数的定义:

使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作。

说白了就是将一个你自已的一个函数A的函数指针传给另外一个函数B(该函数接受你传过来的函数指针);然后在B中调用这个函数,那么就完成了一次回调

下面别人用c写的一个例子:

<span style="color:#000000;">#include <stdio.h>
void printWelcome(int len)
{
       printf("欢迎欢迎 -- %d/n", len);
}
void printGoodbye(int len)
{
       printf("送客送客 -- %d/n", len);
}
void callback(int times, void (* print)(int))
{
       int i;
       for (i = 0; i < times; ++i)

       {
              print(i);
       }
       printf("/n我不知道你是迎客还是送客!/n/n");
}
void main(void)

{
       callback(10, printWelcome);//这里的</span><span style="color:#000000;">printWelcome就是回调函数</span><span style="color:#000000;">
       callback(10, printGoodbye);
       printWelcome(5);

}</span>
下面我用java再写一个简单的例子:

<span style="color:#000000;">public class Caller {
	private IMyCaller caller;
	public Caller(IMyCaller caller){
		this.caller = caller;
	}
	public void call(){
		caller.method();//调用回调函数
	}
}</span>
接口

<span style="color:#000000;">public interface IMyCaller {
	public abstract void method();
}
</span>
实现接口
<span style="color:#000000;">
public class MyCallerImpl implements IMyCaller{

	@Override
	public void method() {
		System.out.println("This is 回调函数");
	}
	public static void main(String[] args) {
		Caller call = new Caller(new MyCallerImpl());//将自已的一个实例传入
		call.call();//实现回调
	}

}</span>





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值