`
hwpok
  • 浏览: 251690 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 回调技术

    博客分类:
  • Java
阅读更多
    当通常大家说的回调函数一般就是按照别人的定好的接口规范写的,等待别人调用的函数,在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 回调函数 实现

    总结,回调函数是Java中实现事件监听和异步处理的关键技术,通过接口定义回调方法,可以在适当的时候调用这些方法来执行相应的操作。在给定的示例中,`Button.java`和`OnButtonClickListener.java`展示了如何通过...

    java自定义回调函数

    回调是一种编程技术,当一个函数执行完毕后,它会调用另一个预先指定的函数,这个被调用的函数就是回调函数。在Java中,我们通常通过实现接口来定义回调,因为Java不支持函数指针。 下面我们将详细探讨如何在Java中...

    Java中回调方法使用范例

    在Java编程中,回调方法是一种设计模式,它允许我们在代码执行过程中插入自定义的行为,特别是在异步编程或者事件处理中非常常见。...进一步研究这些文件将有助于加深对Java回调方法的理解和实践。

    C++JNI多线程回调java

    本示例聚焦于"C++ JNI多线程回调Java",即在C++中创建多线程,并在这些线程中通过JNI回调Java代码。 首先,我们需要理解JNI的基本概念。JNI是一种接口,它定义了Java虚拟机(JVM)如何与本地代码(如C++)交互。这...

    Android JNI多线程编程回调JAVA函数

    本话题将深入探讨如何在Android中使用JNI进行多线程编程,并实现native方法对Java函数的回调。 1. **JNI基础知识**: - JNI是Java平台的一部分,为Java应用程序提供了与本地代码交互的能力。开发者可以通过JNI在...

    JNI调用及回调就(Java&C) 源码

    在这个场景中,JNI被用来实现Java程序对摄像头的控制,以及处理来自C代码的回调。 首先,我们需要理解JNI的工作原理。JNI提供了一套接口,使得Java代码可以生成本地方法调用,这些方法可以是用C或C++编写的。在Java...

    深入理解Java回调函数及其应用实例

    内容概要:本文详细介绍了回调函数的概念、分类和特点。通过具体实例展示了同步和异步回调函数在Java程序中...其他说明:回调函数广泛应用于多种开发框架和技术中,熟练掌握回调函数有助于提升编程技巧和软件架构能力。

    使用一个小例子解释Java回调/代理机制的项目压缩包

    回调是一种允许一个对象在完成特定操作后通知另一个对象的技术。在Java中,这通常通过接口实现。假设我们有一个简单的事件处理系统,其中有一个`EventListener`接口,它有一个`onEvent()`方法。当我们创建一个类并...

    java http post和get请求回调

    总结来说,Java中实现HTTP POST和GET请求,特别是带回调的功能,涉及到网络编程的基本原理和Java的异步处理技术。了解这些知识点对于开发涉及网络通信的Java应用至关重要。通过自定义类和使用Java 8的特性,我们可以...

    如何用Java回调和线程实现异步调用.pdf

    本文将介绍如何使用Java回调和线程实现异步调用,解决这些技术难题。 一、异步调用概述 异步调用是一种非阻塞式调用方式,能够实现程序的连续性和实时性。在异步调用中,主程序不需要等待耗时任务的完成,而是继续...

    oss web端图片直传回调 java签名+html+javaScript maven项目

    综上所述,这个项目提供了一个完整的示例,涵盖了从HTML界面、JavaScript上传逻辑到Java签名和回调处理的全过程,对于理解OSS Web端图片直传有很好的参考价值。然而,由于技术的不断更新,使用时可能需要对代码进行...

    Java 回调函数详解及使用.docx

    下面我们将深入探讨Java回调函数的概念、实现方式以及使用技巧。 首先,理解回调函数的基本原理非常重要。回调函数本质上是一种将控制权转移的技术,使得调用者可以在适当的时间调用被调用者提供的函数。在Java中,...

    [iOS]Objective-C利用协议实现回调函数(类似java的回调函数)

    回调函数,另一方面,是一种函数传递技术,其中一个函数作为参数传递给另一个函数,以便在适当的时间调用。在Java中,我们可以使用接口来实现回调,而在Objective-C中,我们可以使用协议和代理(Delegate)模式来...

    android jni c回调java

    本教程将详细介绍如何在Android中使用JNI实现C语言回调Java的方法,包括有参无参、有无返回值以及静态非静态函数的不同情况。 1. **JNI基础概念** JNI是Java平台的标准组成部分,它提供了一套接口,使得Java代码...

    java 最简答的回调理解

    本文将深入浅出地解释Java回调的概念,并通过实例来帮助你更好地掌握这一技术。 首先,回调的基本思想是让一个函数或方法作为参数传递给另一个函数,当这个被调用的函数执行完毕后,它会调用我们传入的函数。这种...

    海康威视sdk二次开发基于springboot报警回调

    总的来说,海康威视SDK的二次开发基于SpringBoot报警回调是一项结合了设备控制、事件处理和业务逻辑的技术工作。通过熟练掌握SDK的使用和SpringBoot的特性,我们可以构建出高效、可靠的安防系统。在实际开发过程中,...

    JNI层创建的线程中回调java方法

    当我们需要在JNI层创建线程并从这些线程回调Java方法时,就需要对JNI的线程管理和Java方法调用有深入理解。 首先,我们需要了解Java线程和本地线程(即C/C++线程)的区别。Java线程是基于JVM(Java虚拟机)的,而...

    回调技术(CallBack)源码

    回调技术(Callback)是软件设计模式中的一种,它在异步编程或事件驱动编程中扮演着重要角色。回调函数是一种代码执行模式,允许一个函数或方法在特定事件发生时被另一个函数调用。这种机制使得程序能够以非阻塞的...

    springboot对接微信小程序支付以及回调详细代码

    在本文中,我们将深入探讨如何使用SpringBoot框架与微信小程序进行支付对接,并实现支付回调功能。这个过程涉及多个步骤,包括配置、接口开发、微信支付API的调用以及回调处理。我们将按照描述中的"非常详细,完整...

    两个经典例子让你彻底理解java回调机制(csdn)————程序.pdf

    Java回调机制是一种编程模式,它允许一个对象在另一个对象完成特定操作后被通知或调用。这种机制在软件设计中非常常见,特别是在处理异步操作和事件驱动编程中。通过回调,一个对象(调用者)可以注册一个回调函数或...

Global site tag (gtag.js) - Google Analytics