全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java 回调函数深入理解

 Java 回调函数

概要:

 所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数。Web Service以及Java的RMI都用到回调机制,可以访问远程服务器程序。

    下面举个通俗的例子:

    某天,我打电话向你请教问题,当然是个难题,^_^,你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后打手机通知我,这样,我就挂掉电话办其它事情去了。过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理。故事到此结束。这个例子说明了“异步+回调”的编程模式。其中,你后来打手机告诉我结果便是一个“回调”过程;我的手机号码必须在以前告诉你,这便是注册回调函数;我的手机号码应该有效并且手机能够接收到你的呼叫,这是回调函数必须符合接口规范。

    通过上面个人感觉到回调更多的应用就是结合异步。比如:Ajax中js通过组件和服务器的异步通信。 

例:

    程序员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(); 
  } 
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Java  # 回调函数  # 回调函数详解  # 回调函数分析  # Java回调函数原理实例与代理模式的区别讲解  # Java回调函数与观察者模式实例代码  # Java回调函数实例代码详解  # Java通过匿名类来实现回调函数实例总结  # 基于Java 谈回调函数  # Java 回调函数详解及使用  # 再谈java回调函数  # Java中使用回调函数的方法实例  # 回调  # 自己的  # 打手机  # 这是  # 我是  # 我就  # 是个  # 好了  # 我还  # 去了  # 告诉我  # 过了  # 就能  # 不出  # 的说  # 在那里  # 告诉你  # 感觉到  # 但在  # 我又 


相关文章: 网站制作说明怎么写,简述网页设计的流程并说明原因?  Thinkphp 中 distinct 的用法解析  建站之星伪静态规则如何正确配置?  南宁网站建设制作定制,南宁网站建设可以定制吗?  PHP 500报错的快速解决方法  如何通过VPS建站实现广告与增值服务盈利?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  如何在IIS管理器中快速创建并配置网站?  建站之星如何助力企业快速打造五合一网站?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  TestNG的testng.xml配置文件怎么写  高性能网站服务器部署指南:稳定运行与安全配置优化方案  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  如何快速搭建响应式可视化网站?  建站上市公司网站建设方案与SEO优化服务定制指南  如何高效利用亚马逊云主机搭建企业网站?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  内部网站制作流程,如何建立公司内部网站?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  建站DNS解析失败?如何正确配置域名服务器?  实例解析angularjs的filter过滤器  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  寿县云建站:智能SEO优化与多行业模板快速上线指南  c++怎么用jemalloc c++替换默认内存分配器【性能】  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  如何在西部数码注册域名并快速搭建网站?  如何在腾讯云免费申请建站?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  打鱼网站制作软件,波克捕鱼官方号怎么注册?  为什么Go需要go mod文件_Go go mod文件作用说明  如何在Golang中指定模块版本_使用go.mod控制版本号  香港服务器建站指南:免备案优势与SEO优化技巧全解析  广东企业建站网站优化与SEO营销核心策略指南  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  东莞专业制作网站的公司,东莞大学生网的网址是什么?  重庆市网站制作公司,重庆招聘网站哪个好?  广州美橙建站如何快速搭建多端合一网站?  如何生成腾讯云建站专用兑换码?  如何在万网自助建站中设置域名及备案?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  官网网站制作腾讯审核要多久,联想路由器newifi官网  如何快速上传自定义模板至建站之星?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  小型网站制作HTML,*游戏网站怎么搭建?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。