JAVA 回调
2024-08-29 10:38:25
一、定义
回调就是把函数指针做为参数传入,如函数A做为参数传入函数B,由B函数决定何时、何地调用函数A,
function A()
function B(A)
{
call A()
}
就是把A传给B,由B决定什么时候调用。
二、用途
一个通俗的例子如下:
你饿了,想吃饭,就一会去问你妈一声"开饭没有啊?"这就正常函数调用。但是今天你妈包饺子,,花的时间比较长,你跑啊跑啊,就烦了。于是你给你妈说,我先出去玩会,开饭的时候打我手机。等过了一阵,你妈给你打电话说"开饭啦,快回来吃饭吧!"。其中,你告诉你妈打手机找你,就是你把回调函数句柄保存到你妈的动作。你妈打电话叫你,就是个回调过程。
三、java中实现回调
java中如何实现回调?答案是接口方式:
1、定义一个接口phone,妈妈通过这个接口来通知孩子
package test1; public interface phone {
public void eat();
}
2、定义一个孩子类,实现上面这个接口,供妈妈调用
package test1; public class child implements phone
{
public void eat()
{
System.out.println("孩子吃的很happy~~~");
}
}
3、定义一个妈妈类
package test1; public class mum {
phone phone1;
//将child作为参数传进来,这里传进来的实际是接口phone,由于child实现了phone,因此相当于将child作为参数传递了进来
public void setCallback(phone phone1)
{
this.phone1 =phone1;
} //通知child
public void callChild() throws Exception
{
System.out.println("开始包饺子");
Thread.sleep(3000);
System.out.println("饺子包好了"); System.out.println("打电话给孩子,过来吃饺子了");
phone1.eat();
} //主函数
public static void main(String[] args) throws Exception
{
child child1=new child();
mum mum1=new mum();
mum1.setCallback(child1);
mum1.callChild();
}
}
运行mum类,输出如下:
开始包饺子
饺子包好了
打电话给孩子,过来吃饺子了
孩子吃的很happy~~~
最新文章
- RESTful API你怎么看?
- IIS 500.19 错误
- Latex转换之PDF
- du -sg 和df -g 所看的文件系统大小不一致
- 国内Jquery CDN
- Android FastJson解析
- memcache锁
- MySQL(3)-索引
- 一次完整的http的请求过程
- C#-委托delegate
- C# 保存屏幕截图
- chown nagios:nagios -R /var/lib/php/
- UML建模——用例图(Use Case Diagram)
- easyui textbox 获取焦点
- 标记化结构初始化语法 在结构体成员前加上小数点 如 “.open .write .close ”C99编译器 .
- tsconfig.json
- 【数字图像处理】使用kmeans算法对TrueColor图片进行优化
- 【转载】MongoDB集群和实战详解
- 通过代码去执行testNG用例
- Array.prototype.slice用法详解
热门文章
- 027. asp.net中数据绑定控件之 GridView控件
- codevs-1447取出整数的一部分
- php面向对象中的魔术方法中文说明
- css之opacity
- Swift中的HTTP请求
- js跳转到页面中指定的hash
- JDBC - Oracle PreparedStatement (GeneratedKey kind) ArrayIndexOutOfBoundsException
- Myisam and InnoDB
- Keepalived+MySQL实现高可用(转)
- WCF学习心得------(二)设计和实现服务协定