博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入了解回调函数Java
阅读量:6373 次
发布时间:2019-06-23

本文共 1477 字,大约阅读时间需要 4 分钟。

        打回来。我第一次看到Java编程思想,后来Observer模式也适用于一个回调函数的想法。但是,一直没有重视,在处于劣势的最终面试,越来越明白为什么那么多人说Java编程思想,这本书应该是一遍又一遍,。

        首先在网络上搜索非常多文章介绍什么是回调函数。看的云里雾里的。后来自己一步步分解最终理解了。记录例如以下。

        从维基百科上面摘抄定义:(看完本篇文章再来理解这个定义)

        中。回调函数,或简称回调,是指通过传递到其他代码的。某一块。这一设计同意了代码调用在高层定义的

        在Java里面。我们使用接口来实现回调。

        这篇文章中的讲解定义很好:

        所谓的回调,就是程序猿A写了一段程序(程序a),当中预留有回调函数接口,并封装好了该程序。

程序猿B要让a调用自己的程序b中的一个方法。于是,他通过a中的接口回调自己b中的方法。

以下是样例。

      1.  首先定义一个类Caller,依照上面的定义就是程序猿A写的程序a。这个类里面保存一个接口引用。

      

public class Caller {	private MyCallInterface callInterface;		public Caller() {	}		public void setCallFunc(MyCallInterface callInterface) {		this.callInterface = callInterface;	}		public void call() {		callInterface.printName();	}}

       2.  当然须要接口的定义,为了方便程序猿B依据我的定义编敲代码实现接口。

  

public interface MyCallInterface {	public void  printName();}

      3.  第三是定义程序猿B写的程序b

public class Client implements MyCallInterface {	@Override	public void printName() {		System.out.println("This is the client printName method");	}}

       4.  測试例如以下

public class Test {	public static void main(String[] args) {		Caller caller = new Caller();		caller.setCallFunc(new Client());		caller.call();	}}

      看到这里应该明确什么是回调了。有些文章介绍的非常好。可是刚開始没看明确。是由于把第3步的类省略,直接写成匿名类了。

        5.  在測试方法中直接使用匿名类。省去第3步。

public class Test {	public static void main(String[] args) {		Caller caller = new Caller();//		caller.setCallFunc(new Client());		caller.setCallFunc(new MyCallInterface() {			public void printName() {				System.out.println("This is the client printName method");			}		});		caller.call();	}}

      看完上面的文章后,。直接看下面的文章:

      这些都是理解的回调函数。

转载地址:http://xljqa.baihongyu.com/

你可能感兴趣的文章
从多核硬件架构,看Java内存模型
查看>>
第5章—构建Spring Web应用程序—关于spring中的validate注解后台校验的解析
查看>>
fastJson顺序遍历JSON字段
查看>>
ES6 + Angular 1.x
查看>>
XtraBackup不停机不锁表搭建MySQL主从同步实践
查看>>
Linux Dailly
查看>>
Docker学习之路(一)
查看>>
Java工程师知识图谱
查看>>
[Spring实战系列](2)Maven创建Spring-HelloWorld项目
查看>>
CentOS安装运行NodeJS框架Express
查看>>
白话版 动态规划法
查看>>
(十六) 整合spring cloud云架构 -使用spring cloud Bus刷新配置
查看>>
全面总结国内BATH等大厂开源的安卓有关的库(持续更新中...)
查看>>
NutUI 2.1.0 发布,移动端轻量级 Vue 组件库
查看>>
缓存系列文章--热点key问题
查看>>
CSS动画小结
查看>>
初学乍练:一键部署redis集群
查看>>
从一个骗局谈生活中的基础算法
查看>>
JdbcTemplate使用别名绑定变量
查看>>
详解Apache Kylin安装和踩坑
查看>>