简单理解回调

简单理解回调

标签(空格分隔): java


虽然以前也是看过很多回调方面的例子,甚至是跟着步骤把代码写了一遍,然而后面遇到了回调方法还是理解不到,运用不来。

纸上得来终觉浅,觉知此事要躬行

于是找到以前看过的博文,不看代码。看文字描述自己弄了一下,应该算是大彻大悟了。这篇博文是百度回调的第一篇。致谢。
一个经典的例子让你彻彻底底的理解java回调机制

我觉得关键是实现过程:

  • 背景一:类A要实现一个接口,这个接口中的方法就是回调方法
  • 背景二:类A持有类B的一个引用(反正类A中要出现类B的对象)
  • 背景三:类B中要有一个以接口为参数的方法
  • 大结局:在A类或者在任何想要实现回调的场景中使用B的对象调用B中以接口为参数的方法,这个参数就传入A的对象的实例,于是就可以在这个方法中使用A的对象来调用A中的方法(大结局有点混乱)

情景模拟: 我是一个老师类的对象,于是我就是千万个老师之一,这里的老师类就是类A。老师有很多的学生,于是就再创建一个学生类。我让学生去交学费,交了就通知我(交学费只是简单的一种,还有其他很多种耗时的操作)。好的,新建一个学生对象。但是交完钱怎么通知我尼,我留下一个联系方式,就是老师类都有一个联系方式,实现了一个接口。而学生就得有通讯工具,那就是以老师类接口为参数的一个方法。当然在使用的时候要传入我的引用。

A.java

public class A implements Callback {

    private B b;

    public A(B b) {
        // TODO Auto-generated constructor stub
        this.b = b;
    }

    public void g() {
        // TODO Auto-generated method stub
        System.out.println("I kown!");
    }

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

}

B.java


public class B {
    void f(Callback callback) {
        callback.g();
    }
}

Callback.java


public interface Callback {
    void g();
}

博主还说到安卓中的button的点击回调:确实是经典

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值