java回调机制以及android中的回调方法

今天搞清楚了java的回调机制以及android中的回调方法的具体含义,只是感慨自己还是太小白了,加油!

首先引用维基百科上的定义: 在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。

定义:java中的回调是通过一个接口实现的

直接上示例:程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。其中a程序中的call()方法就是回调方法。

caller类也就是A程序员写的a程序

public class caller {

    MyCallInterface callInterface = null;

    public void setCallFunu(MyCallInterface callInterface){
        this.callInterface = callInterface;
    }
    public void call(){
        callInterface.printName();
    }
}

接口的定义

public interface MyCallInterface {
    public void printName();
}

其中接口中定义的方法printName()就是我们在b程序中想要实现的方法也是android中的自己写的onclick方法(此处以android中的onClickListener方法为例子,后面会详细提到)。

然后是B程序员写的b程序

public class Client implements MyCallInterface{

    public void printName(){
        System.out.println("回调成功");
    }

}

测试类Test

public class Test {

    public static void main(String args[]){

        caller caller = new caller();
        caller.setCallFunu(new Client());
        caller.call();
    }

}

结果:
回调成功

分析与总结

因为java中没有函数参数的概念,所以可以通过接口来实现回调。
记住一句话:B程序员通过接口使用a程序调用自己b程序中的方法,叫做回调。

————————————————————————————————————以下是Android中的分析

onClickListener方法为例子

Button.setOnClickListener(new OnClickListener(){
    public void OnClick(){
        System.out.println("我写的点击效果");
    }
});

Button继承自View类就是A程序员写的a程序类,setOnClickListener方法就是a程序中的 setCallFunu()方法,就是设置通过某个接口。后面的匿名内部类OnClickListener就是client类了,只不过换了个形式。

阅读了源码之后发现确实是这样的!

最后说一下android回调的作用:android开发者也就是程序员A定义好了这些接口和方法,使用者我们也就是程序员B自己实现了自己的OnClick方法,我们想调用自己的方法就要通过这样的回调机制实现。

学到了!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值