美文网首页
java中的回调(callback)机制简述(转)

java中的回调(callback)机制简述(转)

作者: 小小的Jobs | 来源:发表于2018-10-16 16:14 被阅读0次

转载自CNDS的cgwang_1580  https://blog.csdn.net/cgwang_1580/article/details/79592244

在java中,回调用的十分频繁;Android开发中,回调往往出现在相机的预览、采图中,这里我们来简单地说明一下回调的实现原理;

回调,顾名思义就是在调用之后返回调用。java回调方法简单的说就是:假设有两个类class A和class B,在B中调用A类的一个方法a1,而a1在执行时又调用了B类中的方法b1,则b1就称为回调函数。

java中,回调的实现一般与接口联系在一起一般有如下套路:

    首先,定义一个接口”interface in”,其中有方法inFun;

    然后,定义类”class B implements in”,并实现接口in中的方法inFun,且有方法funB;

    接着,定义类”class A”,其中有方法funA,且funA的形参中有一个为接口in类型,该方法被B的方法funB调用,并在该方法中调用方法inFun,由于方法inFun在类B中实现,所以inFun即可以称为类B的回调函数;

    最后,由主函数来调用类B中的方法funB,即可以实现回调。

以下为一个实例,新建一个Java项目:

1、定义接口:

public interface DoJob {   

    void fillBlank(int a, int b, int result);

}

其中,接口中有方法fillBlank,对应上述中的inFun;

2、定义类B

public class Student implements DoJob{

    private String name = null;

    public void setName(String theName) {

        name = theName;

    }

    public void callHelp(int a, int b, Student stu) {

        new Calculator().add(a, b, stu);

    }

    public void fillBlank(int a, int b, int result) {

        System.out.println(name + " please for help, " + "the result is " + a + "+" + b + "=" + result);

    }

}

其中,方法callHelp对应上述讲解中的funB,fillBlank为实现接口中的方法;

3、定义类A

public class Calculator {

    private String name = null;

    public void setName(String theName){   

        name = theName;

    }

    public void add(int a, int b, DoJob job ){ 

        int result = a + b;

        job.fillBlank(a, b, result);

    }

}

其中,方法add即对应上述中的funA,在该方法中调用接口方法inFun,即fillBlank;

4、在主方法中实现回调

public class CallbackTest {

    public static void main(String[] args){   

        Student xiaoMing = new Student(); 

        xiaoMing.setName("Xiao Ming");

        Calculator xiaoHong = new Calculator();

        xiaoHong.setName("Xiao Hong");

        int cal1 = 123;

        int cal2 = 1123;

        xiaoMing.callHelp(cal1, cal2, xiaoMing);

    } 

}

其中,方法的调用顺序为:callHelp → add → fillBlank(回调函数),从而实现java回调

---------------------

作者:cgwang_1580

来源:CSDN

原文:https://blog.csdn.net/cgwang_1580/article/details/79592244?utm_source=copy

相关文章

  • java中的回调(callback)机制简述(转)

    转载自CNDS的cgwang_1580 https://blog.csdn.net/cgwang_158...

  • 回调callback

    title: 回调callback 参考: JAVA回调机制(CallBack)详解一个经典例子让你彻彻底底理解j...

  • Java回调(callback)机制

    回调的核心:回调方将本身即 this 传递给调用方,这样调用方就可以在调用完毕之后告诉回调方想要知道的信息。 一、...

  • 转载---Java 回调机制 详解

    原文连接 来自 Bro_超 序言   最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,...

  • java 中的 CallBack 回调

    1. 写在前面 之前只是听了很多次回调,知道这是 java 中的一种设计模式,今天就让我们来系统的看一下Callb...

  • Java基础9:解读Java回调机制

    本文主要介绍了Java中的回调机制,以及Java多线程中类似回调的机制。 具体代码在我的GitHub中可以找到 h...

  • Java 回调 callback

    调用者 Caller 实现一个接口 Callback 调用者 Caller 通过构造方法传入一个 被调用者 ToB...

  • Java 回调(callback)

    回调回调,是huitiao还是huidiao呢?哈哈,用输入法反正都打得出来。关于Java回调这个概念看了几...

  • Js中的回调

    Js中的callback机制,即回调.JS中用到回调的几种情况:1.动态加载(外部)js的时候,在加载完成之后进行...

  • 将CallBack改写成Promise

    CallBack回调函数是js的特色之一, 但CallBack回调方法, 非常容易造成回调地狱(callback ...

网友评论

      本文标题:java中的回调(callback)机制简述(转)

      本文链接:https://www.haomeiwen.com/subject/shmhzftx.html