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里面我们使用接口的方式来实现函数的回调. 回调的通俗就是:程序 ...
随机推荐
- Springboot 系列(七)Spring Boot web 开发之异常错误处理机制剖析
前言 相信大家在刚开始体验 Springboot 的时候一定会经常碰到这个页面,也就是访问一个不存在的页面的默认返回页面. 如果是其他客户端请求,如接口测试工具,会默认返回JSON数据. { &quo ...
- Cannot execute request on any known server或DiscoveryClient_UNKNOWN/DESKTOP-MQ8D0C9:8761
报错信息如下: 2018-08-31 11:45:33.619 WARN 1068 --- [freshExecutor-0] c.n.d.s.t.d.RetryableEurekaHttpClien ...
- 使用LR编写windows sockets协议xml报文格式脚本实战
以下是测试脚本Demo: #include "lrs.h" Action() { char * resultCode;//结果代码 char * time; //系统时间 char ...
- 关于Exceptionless的使用注意
大家都应该比较熟悉NLOG,我们知道log4net和nlog,也有其它的记日志框架.目前我们的生产环境使用nlog,而且对Exceptionless的对接也是无缝的.可能有人会问为什么不用ELK,主要 ...
- [Flashback]开启数据库闪回数据库功能
Flashback是Oracle中一个重要的功能,想要使用闪回数据库功能,需要将数据库置于闪回数据库的状态. 1.检查数据库是否开启归档状态 SQL> archive log list; Dat ...
- 杂牌机搞机之旅(二)————移植TWRP第三方Recovery并刷入
原本想把杂牌机作为android破解和开发的测试机,破解的话肯定是安装框架的嘛,毕竟有些是要涉及到脱壳 . 但是,我尝试安装xposed的时候,手机卡在了开机界面,也就是magisk出现了错误,如果想 ...
- OO第一单元作业小结
前言 第一单元的主题是表达式求导,第一次作业是只带有常数和幂函数的求导,第二次作业加入了正余弦函数,第三次作业又加入了表达式嵌套,难度逐渐提升.总体来说前两次作业还易于应对,而第三次作业做得相对有些艰 ...
- 如何将workerman部署到windows服务器上面
一直以来对php的即时通讯都很好奇,其实是不知道应该怎么来实现,后来了解到了swoole和workerman这两个神器,他们都可以实现即时通信的功能,其中swoole是C语言编写的php扩展,其配置起 ...
- centos安装jenkins
1.安装jdk yum install java java -version 2.安装jenkins 添加Jenkins库到yum库,Jenkins将从这里下载安装. wget -O /etc/yum ...
- Vmware安装CentOs7+gitlab(一)
本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.软硬件准备 软件:推荐使用VMwear,我用的是VMwear 12 镜像:Ce ...