java的接口回调原理网上已经有很多生动形象的例子说明了,在此总结一下个人的理解:类A调用类B的方法b(),类B再回调类A的方法a(),其中方法a()是定义在接口中的,由类A来实现。这是一个双向调用的过程,用下面的类图来加以说明。

Callback.png

1. 创建一个接口:

public interface CallBack{

public void finish(String result);

}

接口定义了一个回调方法finish(),由类Manager实现,供类Employee回调。

2. 创建Manager类实现上面的接口

public class Manager implements CallBack{

private Employee employee;

public Manager(Employee employee){

this.employee = employee;

}

public void assign(){

System.out.println("to finish this work");

employee.get(Manager.this);

}

public void finish(String result){

System.out.println("well done..." + result);

}

}

Manager类是依赖Employee类的,它需要调用Employee类的get()方法,因此在Manager构造方法中将Employee对象作为参数传进来。之后在assign()方法中去调用employee的get()方法。最后记得要实现接口的回调方法finish();

3. 创建Employee类:

public class Employee{

public void get(CallBack callback){

new Thread(new Runnable(){

public void run(){

System.out.println("so easy!");

callback.finish("finish!");

}

}).start();

}

}

get()方法参数是接口,使用的时候直接传入Manager.this就可以了。在方法体中单独开启了一个线程,用来执行一些耗时的操作,这里只是简单的执行回调方法finish();

4. 最后编写一个类来测试一下

public class Main{

public static void main(String[] args){

Employee employee = new Employee();

Manager manager = new Manager(employee);

manager.assign();

}

}

在控制台中输出如下:

output.png

java 接口回调的例子_java接口回调相关推荐

  1. java接口有非抽象方法_Java接口、抽象方法

    1)Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能) ...

  2. java接口可以扩展抽象类_Java—接口与抽象类

    1.语法层面上的区别 1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法: 2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public sta ...

  3. java实体类实现抽象类_java接口、抽象类、实体类关系介绍

    接口:接口是一个引用类型,与类相似,不过在接口中只能包含常量,方法名和嵌套类型.没有构造器,所以不能被实例化只能被类所实现或者被另外的接口所继承.在接口中声明的方法没有方法体. 抽象类:将类层次中共有 ...

  4. java端口是多少钱_Java 接口,最少必要知识

    1.接口的基本概念 在 Java 中,被关键字 interface 修饰的"类"是接口. 接口的定义如下: interface 接口名称{ 全局常量: 抽象方法: } 2. 接口的 ...

  5. java 接口方法名重复_Java接口/实现命名约定[重复]

    本文翻译自:Java Interfaces/Implementation naming convention [duplicate] This question already has an answ ...

  6. java 接口校验接收参数_java接口参数校验

    (可扩充) 命令编号 命令名称 参数命令 提取现场机时间 上传现场机时间 设置现... 接口标准> (以下简称"接口标准" ) <数据对接接口校验规则> < ...

  7. Java接口属性值定义_Java接口(interface)的定义和使用

    Java-接口interface定义和使用 1.什么是接口 Java为单继承,当父类的方法种类无法满足子类需求时,可实现接口扩容子类能力. 即:Java中使用抽象类/父类表示通用属性时,每个类只能继承 ...

  8. java对外查询接口注意的地方_Java接口注意点

    1.接口可以多实现:一个实现类可以同时实现多个接口 package com.qf.demo02_interface; //定义一种规则: interface A{ public void testA( ...

  9. java接口自动化测试的搭建_java接口自动化(一) - 接口自动化测试整体认知 - 开山篇(超详解)...

    简介 了解什么是接口和为什么要做接口测试.并且知道接口自动化测试应该学习哪些技术以及接口自动化测试的落地过程.其实这些基本上在python接口自动化的文章中已经详细的介绍过了,不清楚的可以过去看看.了 ...

最新文章

  1. 亚马逊贝索斯伸出橄榄枝后,巴菲特也力挺特朗普
  2. Java用Xom生成XML文档
  3. 图像处理——Edge Boxes边缘检测
  4. 做算法题时的一些小技巧
  5. Java 错误: 找不到或无法加载主类,问题集合
  6. IFrame语法:IFrame实例应用集
  7. Oracle VM + Windows2003 Server 配置
  8. JavaScript链式调用,对象属性与遍历,this指向,callee和caller
  9. 读Doom启示录 有感
  10. 手机html在哪个文件里,手机录像在哪个文件夹
  11. 获取农历时间(几月初几)
  12. 400GE燎原前夜,智能IP网络的核心路由器巅峰际会
  13. 知识:什么是进销存软件系统?
  14. 杭州图书馆对所有读者免费开放 包括乞丐【让我感动的图书馆】
  15. Win10系统将“用户”文件夹下用户名文件夹修改自定义名称
  16. android studio一个好看的字体设置
  17. linux开机到登陆的流程图,Linux开机自动登录root,并启动应用程序
  18. pku1905 Expanding Rods
  19. UE4之Control Rig
  20. auc 和loss_如何理解机器学习和统计中的AUC?

热门文章

  1. html_后端工程师必备知识-这些你都懂了吗?
  2. 7-5 寻找完美数* (30 分)
  3. 台式机连显示器黑屏故障处理思路
  4. Archive.org:历史网站查询
  5. Tomcat工作原理详细介绍
  6. 【OpenGL ES】入门及绘制一个三角形
  7. python介绍与安装(一)
  8. python -- 图片压缩处理
  9. 代码静态扫描工具sonar介绍
  10. 签订认购书后开发商上涨房价这样合不合法