美文网首页
java回调机制

java回调机制

作者: ZMRWEGo | 来源:发表于2018-09-27 14:39 被阅读12次

java的调用机制主要分为同步调用、异步调用、回调这三种,当然也包括一些其它的,例如异步回调等。

同步调用是我们平常使用比较多的方法,是一种阻塞式调用,即是在一个类A中调用另一个类B中的方法,只有当B中的方法完成后,A才会继续完成其后续的方法;异步调用其实就是实现一个可无需等待调用函数的返回值而让操作继续运行的方法。简单的将就是另外启动一个线程完成调用部分的方法,调用者继续执行自己的方法,之后接收被调用方法的结果即可

一、回调机制及代码实现

回调从字面上也很好理解,即被调用方在被调用时也会调用对方的方法。那么回调的作用是什么呢?它允许我们开发自己的类方法然后集成到框架中去,用来满足个性化的定制需求。

  • 在java中实现回调:
  1. 类A实现接口CallBack (接口函数假设为call())
  2. 类A中包含成员变量类B的实例
  3. 类B中有一个含有参数为CallBack callback 的方法f
  4. a对象调用B的方法f,f又在自己的方法中调用A的方法
    要实现上述流程,我们需要定义一个接口,和两个类

接口

public interface CallBack {

    void callback();
}

类A(调用方)

public class A implements CallBack {

    private B b;

    public A(B b) {
        this.b = b;
    }

    @Override
    public void callback() {
        System.out.println("函数回调");
    }
    //开启异步调用
    public void call(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                b.execute(A.this);
            }
        }).start();
    }

    public static void main(String[] args) {
        B b = new B();
        A a = new A(b);
        a.call();
    }
}


类B

public class B {

    public void execute(CallBack callBack){
        System.out.println("我是被调用方");
        callBack.callback();
    }
}

这里是一个异步回调的实现,线程run()也是一个回调方法,当执行Thread的start()方法就会回调这个run()方法。

·

相关文章

  • Thinging in Java阅读时遇到的问题

    菜鸟教程Java回调机制解读Java回调机制总结内部类标识符JAVA foreach和普通for循环是否需要判断为...

  • Java相关博客推荐阅读--Java回调机制

    Java回调机制 这篇文章循循渐进的介绍了什么是Java回调机制,以及在Java中的简单实现。通过形象生动的例子,...

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

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

  • java接口回调机制

    转载的正文 地址--理解java接口回调机制

  • java回调机制

    回调的基本概念 在java中,我们可以将回调简单理解为:类A中的a方法调用类B中的b方法,而类B的b方法有反过来调...

  • java回调机制

    java的调用机制主要分为同步调用、异步调用、回调这三种,当然也包括一些其它的,例如异步回调等。 同步调用是我们平...

  • Java回调机制

     回调是一种设计模式,应用场景:即为了避免阻塞,新开线程去执行任务,当新开的线程把任务执行完毕,需要返回通知结果。...

  • Java回调机制

    最近一直在想罗振宇老师说的一段话,大致如下:任何一个行业都有自己的独特性,你要是能将自己行业独有的认知模型用质朴的...

  • Java 回调机制

    参考链接 Java回调机制解读 回调的思想 类A的a()方法调用类B的b()方法 类B的b()方法执行完毕主动调用...

  • Java回调机制

    前言 Java 回调学习文章 这个是目前讲回调讲的最好的一片文章, 三点建议: 其中使用了内部类,不用也是可以的,...

网友评论

      本文标题:java回调机制

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