当通常大家说的
回调函数一般就是按照别人的定好的接口规范写的,等待别人调用的函数,在C语言中,
回调函数通常通过函数指针来传递;在
Java中,通常就是编写另外一个类或类库的人规定一个接口,然后你来实现这个接口,然后把这个实现类的一个对象作为参数传给别人的程序,别人的程序必要时就会通过那个接口来调用你编写的函数。
在java中理解“回调函数”
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。
一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B叫甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数。
下面举个通俗的例子:
某天,我打电话向你请教问题,当然是个难题,:),你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后打手机通知我,这样,我就挂掉电话办其它事情去了。过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理。故事到此结束。
这个例子说明了“异步+回调”的编程模式。其中,你后来打手机告诉我结果便是一个“回调”过程;我的手机号码必须在以前告诉你,这便是注册回调函数;我的手机号码应该有效并且手机能够接收到你的呼叫,这是回调函数必须符合接口规范。
如果你还不太清楚看看这段描述合和代码:
声明一个接口,另外一个类有方法里面有个参数以是这个接口类型的,而后在另外类中实现这个接口(java中多用的是匿名内部类),而且以这个匿名的类生成的对象为参数传到上面提到类中,而后实现回调.......这种用法可以参考java里面常用到的数据库操作所用到的几个接口.....
注:匿名内部类 的说明可以见 http://dev.csdn.net/author/CMTobby/339cbab3897f4106bed2fe2ecd75470a.html
//声明一个接口
public interface ICallBack(){
void postExec();
}
//另外一个类有方法里面有个参数以是这个接口类型的
public class FooBar..{
private ICallBack callBack;
public void setCallBack(ICallBack callBack){
this.callBack=callBack;
}
public void doSth(){
....
callBack.postExec();
}
..
}
---------------------------------------
回调的实现
public class Test{
public static void main(String[] args){
FooBar foo=new FooBar();
foo.setCallBack(new ICallBack(){
public void postExec(){System.out.println("method executed.");}
});
}
}
分享到:
相关推荐
总结,回调函数是Java中实现事件监听和异步处理的关键技术,通过接口定义回调方法,可以在适当的时候调用这些方法来执行相应的操作。在给定的示例中,`Button.java`和`OnButtonClickListener.java`展示了如何通过...
回调是一种编程技术,当一个函数执行完毕后,它会调用另一个预先指定的函数,这个被调用的函数就是回调函数。在Java中,我们通常通过实现接口来定义回调,因为Java不支持函数指针。 下面我们将详细探讨如何在Java中...
在Java编程中,回调方法是一种设计模式,它允许我们在代码执行过程中插入自定义的行为,特别是在异步编程或者事件处理中非常常见。...进一步研究这些文件将有助于加深对Java回调方法的理解和实践。
本示例聚焦于"C++ JNI多线程回调Java",即在C++中创建多线程,并在这些线程中通过JNI回调Java代码。 首先,我们需要理解JNI的基本概念。JNI是一种接口,它定义了Java虚拟机(JVM)如何与本地代码(如C++)交互。这...
本话题将深入探讨如何在Android中使用JNI进行多线程编程,并实现native方法对Java函数的回调。 1. **JNI基础知识**: - JNI是Java平台的一部分,为Java应用程序提供了与本地代码交互的能力。开发者可以通过JNI在...
在这个场景中,JNI被用来实现Java程序对摄像头的控制,以及处理来自C代码的回调。 首先,我们需要理解JNI的工作原理。JNI提供了一套接口,使得Java代码可以生成本地方法调用,这些方法可以是用C或C++编写的。在Java...
回调是一种允许一个对象在完成特定操作后通知另一个对象的技术。在Java中,这通常通过接口实现。假设我们有一个简单的事件处理系统,其中有一个`EventListener`接口,它有一个`onEvent()`方法。当我们创建一个类并...
总结来说,Java中实现HTTP POST和GET请求,特别是带回调的功能,涉及到网络编程的基本原理和Java的异步处理技术。了解这些知识点对于开发涉及网络通信的Java应用至关重要。通过自定义类和使用Java 8的特性,我们可以...
本文将介绍如何使用Java回调和线程实现异步调用,解决这些技术难题。 一、异步调用概述 异步调用是一种非阻塞式调用方式,能够实现程序的连续性和实时性。在异步调用中,主程序不需要等待耗时任务的完成,而是继续...
综上所述,这个项目提供了一个完整的示例,涵盖了从HTML界面、JavaScript上传逻辑到Java签名和回调处理的全过程,对于理解OSS Web端图片直传有很好的参考价值。然而,由于技术的不断更新,使用时可能需要对代码进行...
下面我们将深入探讨Java回调函数的概念、实现方式以及使用技巧。 首先,理解回调函数的基本原理非常重要。回调函数本质上是一种将控制权转移的技术,使得调用者可以在适当的时间调用被调用者提供的函数。在Java中,...
回调函数,另一方面,是一种函数传递技术,其中一个函数作为参数传递给另一个函数,以便在适当的时间调用。在Java中,我们可以使用接口来实现回调,而在Objective-C中,我们可以使用协议和代理(Delegate)模式来...
总的来说,海康威视SDK的二次开发基于SpringBoot报警回调是一项结合了设备控制、事件处理和业务逻辑的技术工作。通过熟练掌握SDK的使用和SpringBoot的特性,我们可以构建出高效、可靠的安防系统。在实际开发过程中,...
本教程将详细介绍如何在Android中使用JNI实现C语言回调Java的方法,包括有参无参、有无返回值以及静态非静态函数的不同情况。 1. **JNI基础概念** JNI是Java平台的标准组成部分,它提供了一套接口,使得Java代码...
本文将深入浅出地解释Java回调的概念,并通过实例来帮助你更好地掌握这一技术。 首先,回调的基本思想是让一个函数或方法作为参数传递给另一个函数,当这个被调用的函数执行完毕后,它会调用我们传入的函数。这种...
当我们需要在JNI层创建线程并从这些线程回调Java方法时,就需要对JNI的线程管理和Java方法调用有深入理解。 首先,我们需要了解Java线程和本地线程(即C/C++线程)的区别。Java线程是基于JVM(Java虚拟机)的,而...
回调技术(Callback)是软件设计模式中的一种,它在异步编程或事件驱动编程中扮演着重要角色。回调函数是一种代码执行模式,允许一个函数或方法在特定事件发生时被另一个函数调用。这种机制使得程序能够以非阻塞的...
Java回调机制是一种编程模式,它允许一个对象在另一个对象完成特定操作后被通知或调用。这种机制在软件设计中非常常见,特别是在处理异步操作和事件驱动编程中。通过回调,一个对象(调用者)可以注册一个回调函数或...
在本文中,我们将深入探讨如何使用SpringBoot框架与微信小程序进行支付对接,并实现支付回调功能。这个过程涉及多个步骤,包括配置、接口开发、微信支付API的调用以及回调处理。我们将按照描述中的"非常详细,完整...