java回调函数,看完就懂
java回调函数在网上了看了些例子,比较绕,不够清晰,自己写的一个例子比较通俗,java回调其实很简单。
举个例子我是类B,我有个方法叫b(),现在我要调用类A中的方法a(),写个代码就是:
public class ClassB{ //我是类 B
public void b(){ //我是类B中的方法b()
ClassA a = new ClassA();//我现在实例化A类,为的是调用A类中的方法a()
a.a(); //快看我现在开始调用A类中的a()方法了,代码执行到这大家都懂,就是一个普通的调用其他类的方法,
//那么回调怎么回事,回调就是我执行a()方法结束后,需要再执行我自己(类B)的方法back()
//回调就是这个意思,我调用你的方法,调用完你的方法后,再回过头来调用自己的方法
//注意,有人就要说了 我在a.a()方法后面直接加上一个 back()不就行了,可以,但那不是回调函数
//回调更像是一个约定,就是如果我调用了a()方法,那么就必须要回调,而不需要显示调用
}
public void backs (){
System.out.println("我就是回调函数");//暂时不要管我,其实我就是回调函数
}
}
再举个例子就是:我是老板(Boss),我有一部电话叫back,现在我安排了一个任务给员工(Emp),让他给我打印一份报表(doPrint),打印好报表后再通过我的
电话back告诉我。那么流程就很清晰了
public class Boss{ //我是老板
Emp emp = new Emp();//现在我new一个员工出来
emp.doPrint(); //我现在让这个员工去给我打印一份报表,报表打印好后直接通过back电话通知我。
public void back(){
System.out.println("老板报表打印好了,请你放心!");//这个是我的电话
}
}
上面说了
emp.doPrint();//报表打印好后 back(); //直接通过back电话告诉老板,这种写法不是回调
那么我怎么让员工emp.doPring();打印好报表后打电话给我呢。可以想象一下就是在emp.doPrint();打印报表这个方法中再次调用Boss的电话
public class Emp(){ //员工
public void doPrint(){ //员工开始打印报表了
System.out.println("老板我报表打印好了");//这个时候员工把报表打印好了,再通过老板的电话通知老板,怎么做呢?
Boss boss = new Boss();
boss.back(); //这就是通过老板的电话在我打印好了以后,告知老板
}
}
这样就实现了我doPrint();//报表打印好后,回调Boss的电话通知Boss,这就是回调
以上都是伪代码,只是为了说明什么是回调,但是在实际应用中,都是利用接口设置回调函数的
接口回调函数参照:http://www.ej38.com/showinfo/java-197426.html
java回调函数,看完就懂的更多相关文章
- 深度剖析HashMap的数据存储实现原理(看完必懂篇)
深度剖析HashMap的数据存储实现原理(看完必懂篇) 具体的原理分析可以参考一下两篇文章,有透彻的分析! 参考资料: 1. https://www.jianshu.com/p/17177c12f84 ...
- Java回调函数的理解与实现
回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 在Java里面,我们使用接口来实现回调.举个例子 所谓的回调,就是程序员 ...
- [转帖]Linux shell中2>&1的含义解释 (全网最全,看完就懂)
Linux shell中2>&1的含义解释 (全网最全,看完就懂) https://blog.csdn.net/zhaominpro/article/details/82630528 ...
- Java 回调函数
下面使用java回调函数来实现一个测试函数运行时间的工具类: 如果我们要测试一个类的方法的执行时间,通常我们会这样做: public class TestObject { /** * 一个用来被测试的 ...
- 2018前端面试总结,看完弄懂,工资少说加3K | 掘金技术征文
2018前端面试总结,看完弄懂,工资少说加3K | 掘金技术征文:https://juejin.im/post/5b94d8965188255c5a0cdc02
- Java回调函数
维基百科上的定义:在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 所谓回调,就是客户程序C调用服务程 ...
- java回调函数这样说,应该明确了吧!
有哥们问我回调怎么用,回调怎么理解? 怎么说好呢,仅仅可意会不可言传呐,非也,回调在实际开发中使用频率事实上是非常高的,恰好我小时候也被回调函数欺负过,居然问了,那么肯定要好好分享一下我的一些经验. ...
- 转Java 回调函数的理解
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数.例如Win32下的窗口过程函数就是一个典型的回调函数.一般说来,C ...
- JAVA回调函数ANDROID中典型的回调地方
在计算机中回调函数是指通过函数参数传递到其他代码类的,某一块可执行代码的引用,这以设计允许了底层代码调用者在高层定义的子程序. 在JAVA里面我们使用接口的方式来实现函数的回调. 回调的通俗就是:程序 ...
随机推荐
- 还在问跨域?本文记录js跨域的多种实现实例
前言 众所周知,受浏览器同源策略的影响,产生了跨域问题,那么我们应该如何实现跨域呢?本文记录几种跨域的简单实现 前期准备 为了方便测试,我们启动两个服务,10086(就是在这篇博客自动生成的项目,请戳 ...
- OpenCV 初体验
个人博客原文链接 个人掘金链接 本文简单地介绍计算机图形处理的一些基本概念,以及一些有趣的例子和对应的Open CV的代码操作. 顺便说一句,恭喜IG夺冠! 一.图片存储原理 1.颜色空间RGB (1 ...
- [TCP/IP] 计算机网络性能指标
速率:连接在计算机网络上的主机在数字信道上传输数据位数的速率单位是 b/s kb/s mb/s gb/s带宽:数字信道所能传输的最高数据率 查看我的网卡是144Mbps吞吐量:单位时间内通过某个网络的 ...
- jQuery(八)、ajax
1.jQuery.ajax(url[, settings]) 通过HTTP请求加载远程数据. 注意:所有的settings选择都可以通过$.ajaxSetup()函数来全局指定. 回调函数 在实际开发 ...
- Java开发笔记(序)章节目录
现将本博客的Java学习文章整理成以下笔记目录,方便查阅. 第一章 初识JavaJava开发笔记(一)第一个Java程序Java开发笔记(二)Java工程的帝国区划Java开发笔记(三)Java帝国的 ...
- HeadFirst设计模式读书笔记之策略模式
1. 例子 1. 做一个鸭子模拟器,里面有很多不同的鸭子,有的可以游泳,有的可以睡觉,有的可以呱呱叫,一般套路是定义一个鸭子的超类,在 超类里定义睡觉,游泳,呱呱叫的方法,再让不同的鸭子子类继承这个超 ...
- 在 asp.net core 中使用类似 Application 的服务
在 asp.net core 中使用类似 Application 的服务 Intro 在 asp.net 中,我们可以借助 Application 来保存一些服务器端全局变量,比如说服务器端同时在线的 ...
- 关于写作那些事之github告诉我构建失败,然后呢?
The page build failed for the master branch with the following error 问题描述 看到这封邮件,一脸懵逼,本地运行 gitbook 服 ...
- MySQL, XE7使用FireDAC连接MySQL数据库
发现使用DBExpress进行MySQL连接老是有莫名其妙的问题,直接改为FireDAC 在上一篇的DataSnap服务框架程序中,将连接的数据库由MSSQL改为本文的MySQL 使用的MySQL数据 ...
- SQL运维
1.碎片扫描 dbcc showconfig('table_name')