java中的回调理解
来源:互联网 发布:英语视频教学软件 编辑:程序博客网 时间:2024/03/29 03:30
在java中理解“回调函数”
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。
一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B叫甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数。
下面举个通俗的例子:
某天,我打电话向你请教问题,当然是个难题,:),你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后打手机通知我,这样,我就挂掉电话办其它事情去了。过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理。故事到此结束。
这个例子说明了“异步+回调”的编程模式。其中,你后来打手机告诉我结果便是一个“回调”过程;我的手机号码必须在以前告诉你,这便是注册回调函数;我的手机号码应该有效并且手机能够接收到你的呼叫,这是回调函数必须符合接口规范。
如果你还不太清楚看看这段描述合和代码:
声明一个接口,另外一个类有方法里面有个参数以是这个接口类型的,而后在另外类中实现这个接口(java中多用的是匿名内部类),而且以这个匿名的类生成的对象为参数传到上面提到类中,而后实现回调.......这种用法可以参考java里面常用到的数据库操作所用到的几个接口.....
注:匿名内部类 的说明可以见 http://dev.csdn.net/author/CMTobby/339cbab3897f4106bed2fe2ecd75470a.html
//声明一个接口
public interface ICallBack(){
void postExec();
}
//另外一个类有方法里面有个参数以是这个接口类型的
public class FooBar..{
private ICallBack callBack;
public void setCallBack(ICallBack callBack){
this.callBack=callBack;
}
public void doSth(){
....
callBack.postExec();
}
..
}
---------------------------------------
回调的实现
public class Test{
public static void main(String[] args){
FooBar foo=new FooBar();
foo.setCallBack(new ICallBack(){
public void postExec(){System.out.println("method executed.");}
});
}
}
- java中的回调理解
- Android/Java回调理解
- Java回调理解 (step by step)
- 函数回调理解—Java方式
- JAVA 最简单的回调理解
- Callback回调理解
- 回调理解
- 关于回调理解
- Java回调理解,以Android中Button为例
- ViewPager中回调理解
- C#中 委托、事件、回调理解
- 笔记11 接口回调理解
- 【Android 进阶】 Android 回调理解
- 七牛回调理解
- 生活调理
- 水调理...
- 胃的调理
- 立秋以后调理有四忌
- druid1.0.21版本源码研究之连接回收(分析解决mysql8小时断线)
- Mysql 优美的输出
- JAVA知识列表______软件开发-JAVA
- 『Python学习』python 核心编程——面向对象编程学习笔记
- js-正则表达式组成:方括号 ,圆括号,元字符,量词,修饰符
- java中的回调理解
- JavaSE String , StringBuffer 和 StringBuilder
- 布线问题(已运行通过),C++语言实现,使用分支限界法
- android studio如何使用git
- Scala for Comprehensions
- python中的os.path.dirname(__file__)的使用
- Java变量命名规则
- Linux命令(35):vmstat
- Mac电脑升级到macOS Sierra后“任何来源”从Gatekeeper消失的解决办法