2019独角兽企业重金招聘Python工程师标准>>>

java回调是一个非常灵活的机制,使用的场景一般是封装一个模块的时候,需要在特定的地方调用某些方法,这些方法里面有什么内容是根据实际使用的情况而定的话,这个时候就需要在该模块里面定义一个接口,然后交给实际使用这个模块的使用者类来实现接口的方法,相对来说非常灵活。

很多人在实现回调的时候经常被接口的调用者和接口的实现者搞混淆了

接口的调用者是指实际应用中调用接口里面函数的类,可以说这个类就是本例中的功能模块简称A

接口的实现者是指根据实际情况实现接口,补充接口函数具体操作的类,简称B

很重要的是,从接口的使用层面来看,接口的调用者是A,实现者是B

从整体功能调用层面来看,功能的调用者是B,实现者是A。之前

下面来说一下如何实现java回调吧

沿用上面的说法

在A里面

第一步:声明一个接口

第二步:声明一个接口调用对象

第三步:写一个设置传入接口对象的函数

第四步:根据功能的需要在A里面调用接口里面的方法

在B里面

第一步:实现该接口,可以通过implements方式,也可以自己new一个

第二步:实现接口调用方法

看看demo

package com.callbackdDemo;
/*** 接口的调用者* 功能的实现者* @author cgx**/
public class A {private AListener mListener;public interface AListener{//接口的方法,需要在实现接口的类里面完成具体的操作,也就是所谓的回调方法public void callback();}public void setListener(AListener listener){mListener=listener;}public void mothed(){System.out.println("功能模块类A的功能被调用啦!!");mListener.callback();}
}
package com.callbackdDemo;
import com.callbackdDemo.A.AListener;/*** 接口的实现者* 功能的调用者* @author cgx**/public class B {
public static void main(String[] args) {A a=new A();a.setListener(new AListener() {@Overridepublic void callback() {// TODO Auto-generated method stubSystem.out.println("功能的调用者B里面实现的回调函数被调用啦!!");}});//功能模块调用方法a.mothed();
}
}

执行结果

功能模块类A的功能被调用啦!!

功能的调用者B里面实现的回调函数被调用啦!!

转载于:https://my.oschina.net/carbenson/blog/535295

java回调使用小结相关推荐

  1. Java 回调函数的理解

    以下是我对java回调函数的理解,希望对各位有帮助. 简而言之,假设有两个类A与B,还有一个回调接口C(有一个c方法).其中A类持有一个B类对象作为属性和拥有一个a方法,并实现了接口C,所以A类中就有 ...

  2. java回调机制及其实现(转)

    1. 什么是回调函数 回调函数,顾名思义,用于回调的函数.回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数.回调函数是一个工作流的一部分,由工作流来决定函数的调用(回调)时机.回调 ...

  3. 深入浅出Java回调机制

    前几天看了一下Spring的部分源码,发现回调机制被大量使用,觉得有必要把Java回调机制的理解归纳总结一下,以方便在研究类似于Spring源码这样的代码时能更加得心应手. 注:本文不想扯很多拗口的话 ...

  4. Java 回调 (Callback) 接口学习使用

    文章目录 Java 回调 (Callback) 接口学习使用 1.什么是回调(Callback)? 2.Java代码示例 2.直接调用 3.接口调用 4.Lambda表达式 推荐看我的InfoQ地址, ...

  5. Java面向对象部分小结

    Java面向对象部分小结 第一天: 1. 了解面向对象和面向过程 2. 对象是什么,静态特性(属性),动态特征(方法) 3. 类和对象的关系 类是抽象的,对象是具体的 类是具有相同属性和行为(方法)的 ...

  6. [实战]java回调函数

    下面使用java回调函数来实现一个测试函数运行时间的工具类: 如果我们要测试一个类的方法的执行时间,通常我们会这样做: java 代码 public   class  TestObject { /** ...

  7. java反射回调函数_用J2V8注册Java回调函数

    J2V8是一套针对谷歌的V8 JavaScript引擎的Java绑定.J2V8的开发为Android平台带来了高效的Javascript的执行环境,taris.js 就是基于J2V8开发的.J2V8同 ...

  8. Java多线程自我小结

    Java多线程自我小结 一.多线程(Thread)的相关概念 1. 进程 2. 线程 3. 线程调度 (1)分时调度 (2)抢占式调度 4. 同步与异步 5. 并发与并行 二.多线程的三种启动方式 1 ...

  9. Java回调函数理解和应用

    #Java回调函数理解和应用 所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的. 在未理解之前,我也是一脸懵逼,等我理 ...

最新文章

  1. EPSON机器人的以太网通讯简单总结
  2. java设计模式---合成模式2
  3. 动网 php v1.0 漏洞,动网(DVBBS)PHP论坛preview.php代码执行漏洞
  4. 清除应用程序所有缓存
  5. 解决VS2013中出现类似于error C4996: 'scanf': This function or variable may be unsafe的安全检查错误
  6. linux后台运行cat命令,Linux程序前台后台切换
  7. 页面生命周期_微信小程序的生命周期学习笔记-应用篇
  8. Win32多线程编程(3) — 线程同步与通信
  9. Codeup-问题 C: 畅通工程
  10. python线性回归分析看相关性_机器学习入门-相关分析之简单线性回归
  11. C++ class实现单向循环链表(完整代码)
  12. 深度学习与自然语言处理
  13. 浏览器原生支持平滑滚动
  14. ReactiveSwift源码解析(三) Signal代码的基本实现
  15. 图像处理--VGA分辨率
  16. UE4自定义资源和编辑器(一):创建自定义资源
  17. C盘太小,调整磁盘分区大小
  18. 也来聊聊Spring中的IOC和AOP
  19. 如何从列联表获得对应分析的结果
  20. 金彩教育:拼多多运营的方法有哪些

热门文章

  1. Python持续更新的新特性
  2. inline内联的用法与作用
  3. spring核心配置文件引入外部properties文件和另外的xml配置文件
  4. 【linux杂谈】查看centOS系统的版本号和内核号
  5. EntityFramework进阶(三)- 根据IQueryable获取DbContext
  6. Keil4 几例异常解决办法
  7. 随笔② Java中的关键字 --- final关键字
  8. 菜单点击展开,超过四个则进行向右滑动显示demo
  9. Android UI事件处理
  10. [置顶]IFTTT与Google+是什么?ifttt怎么玩?