美文网首页
回调方法

回调方法

作者: 许宏川 | 来源:发表于2015-07-28 23:09 被阅读146次

回调方法和递归方法 一样,并不是一种特殊的方法,只是一种实现某种功能的思路。
要实现的功能是:A类调用了B类的方法,B类反过来调用A类的方法。

示例代码:

创建一个ICallback 接口,有一个callback抽象方法。

public interface ICallback {

    void callback();

}

创建类B,有个ICallback 成员变量,由setCallback动态设置ICallback的引用对象。这样的话实现了谁被传进来一会就回调谁。

public class B {

    ICallback callback;

    public void setCallback(ICallback callback) {
        this.callback = callback;
    }

    public void callA() {
        System.out.println("我是B类的callA方法,我要回调A类的callback方法");
        callback.callback();
    }
}

创建类A,实现了ICallback接口。实现了callback方法。另外有个callB方法,创建一个B对象,调用B的setCallback时把自己给传了进去。然后调用B类的callA()方法,结果callA()方法会反过来调用A类的callback方法。

public class A implements ICallback {

    @Override
    public void callback() {
        System.out.println("我是A类callback方法,我被B回调了");
    }

    public void callB() {
        B a = new B();
        a.setCallback(this);
        System.out.println("我是A类的callB方法,我要调用B类的callA方法");
        a.callA();
    }
}

测试代码:

A a = new A();
a.callB();

运行结果:

<pre>
我是A类的callB方法,我要调用B类的callA方法
我是B类的callA方法,我要回调A类的callback方法
我是A类callback方法,我被B回调了
</pre>

本文代码下载:百度网盘

相关文章

  • oc调用js语句卡死随笔

    shareResultBlock 为回调方法。当回调方法中有 [_webView stringByEvalua...

  • 动画常用属性及回调方法

    常用UIView动画属性设置方法 动画回调方法的使用 1.代理回调方法 重写动画结束后的停止回调方法 2.setA...

  • Android使用suspendCancellableCorou

    普通的回调函数: 回调方法,模拟耗时操作 去掉回调,转换为挂起函数:

  • kotlinInterface

    注:适用于回调接口单个方法 1.方法无参无返回值回调 (1)声明回调接口,以及初始化接口 2.方法有参无返回值回调...

  • iOS系统音量与耳机插入拔出监听

    一、系统音量的监听 回调方法: 二、耳机的插入与拔出 回调方法:

  • 为什么说过滤器Filter由回调实现

    回调(个人理解):类A中任意方法中调用了类B的方法,而B方法又调用了A中某回调方法; 加了接口的说法:回调接口的实...

  • 回调方法

    回调方法和递归方法 一样,并不是一种特殊的方法,只是一种实现某种功能的思路。要实现的功能是:A类调用了B类的方法,...

  • Kotlin使用接口回调

    1.Java中的接口回调实现(支持多方法回调) 声明回调接口,初始化接口 使用接口回调(无参数) 使用接口回调(带...

  • 同步,异步

    js异步操作的方法:1.回调函数就是把一方法当作参数传到另一个方法里。有两种回调方式:同步回调和有异步回调 同步回...

  • Kotlin简单回调接口(lambda实现)

    注:适用于回调接口单个方法 1.方法无参无返回值回调 (1)声明回调接口,以及初始化接口 (2)接口方法的调用 (...

网友评论

      本文标题:回调方法

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