精华内容
下载资源
问答
  • Java实现的回调函数

    千次阅读 2021-02-12 21:25:16
    一个回调函数的例子,首先是我为了完成在工厂工作的任务,但是我不能一直在工厂工作,我必须知道工作完以后,就要下班回家。所以做了一个回调函数,通知我,今天工作做完了,可以下班回家啦。具体可以看代码的实现...

    一个回调函数的例子,首先是我为了完成在工厂工作的任务,但是我不能一直在工厂工作,

    我必须知道工作完以后,就要下班回家。所以做了一个回调函数,通知我,今天工作做完了,可以下班回家啦。

    具体可以看代码的实现(实现的方式很多吧其实,也可以写其它形式的回调函数代码)

    (这个回调函数的实际用途:游戏玩家付费后,进行付费的相关操作(工厂上班),付费完成(工作结束),通知相关代码处理付费完成后的操作(下班回家))

    回调函数的接口:

    public interface ICallBack {

    public void workDone();

    }

    回调函数的管理器:

    public class FunctionManager {

    public static ICallBack s_callback;

    private static FunctionManager function;

    private FunctionManager() {

    }

    public static FunctionManager getInstance() {

    if (function == null) {

    function = new FunctionManager();

    }

    return function;

    }

    public void Work(String name, ICallBack callback) {

    s_callback = callback;

    new Factory().workDay();

    }

    }

    具体处理相关事件:

    public class Factory {

    public Factory() {

    }

    public void workDay() {

    System.out.println("I am in Factory work for my boss!!!: (");

    /**

    * work Day is done...

    */

    // callback

    FunctionManager.s_callback.workDone();

    }

    }

    测试代码:

    public class Main {

    public static void main(String[] args) {

    FunctionManager.getInstance().Work("vokie", new ICallBack() {

    @Override

    public void workDone() {

    System.out.println("workDone : )");

    /**

    * after work. do what you want~enjoy it~!

    */

    }

    });

    }

    }

    运行结果:

    I am in Factory work for my boss!!!: (

    workDone : )

    展开全文
  • 详解Java回调机制 (Callback) 讲解+实例Java中的回调(callback)是很重要的一个概念,spring整合hibernate大量使用了这种技术。究竟怎样才是回调呢?这是网上最多见到的说明:1.class A,class B2.class A实现接口...

    详解Java回调机制 (Callback) 讲解+实例

    Java中的回调(callback)是很重要的一个概念,spring整合hibernate大量使用了这种技术。

    究竟怎样才是回调呢?

    这是网上最多见到的说明:

    1.class   A,class   B

    2.class   A实现接口callback

    3.class   B拥有一个参数为callback接口类型的函数

    4.class   A运行时调用class   B中的函数,以自身传入参数

    5.class   B已取得A,就可以随时回调A所实现的callback接口中的方法

    下面我举一个例子:

    中国电信(ChinaTelecom)是移动运营商之一,想必近两年满天飞的“天翼3G”大家都知道吧。空中网(KongNet)是那个总是喊“用手机看NBA”的服务提供商(ServiceProvider,简称“SP”)。

    移动运营商和SP合作才能为我们广大移动用户提供各种服务。比如音乐,彩铃,手机看NBA等等。

    这里有一个接口ServiceProvider,也就是Callback接口;

    /**

    * 与中国电信合作的sp实现此接口即可

    * 这个就是Callback接口

    * @author wanghe

    *

    */

    public interface ServiceProvider {

    /**

    * sp可以自定义提示

    */

    public void customHint();

    }

    一个ChinaTelecom类,即class B;

    /**

    * 中国电信

    * @author wanghe

    *

    */

    public class ChinaTelecom {

    private ServiceProvider sp;//callback接口作为属性

    public void setSp(ServiceProvider sp) {

    this.sp = sp;

    }

    /**

    * 初始化

    */

    public void init(){

    System.out.println("Welcome, This is ChinaTelecom! ");

    sp.customHint();//sp自定义的操作

    }

    }

    一个KongNet类,即 class   A

    /**

    * 服务提供商(SP)--空中网

    * @author wanghe

    *

    */

    相关文档:

    事实上网络编程简单的理解就是两台计算机相互通讯数据而已。对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了。Java SDK提供一些相对简单的Api来完成这些工作,Socket就是其中之一。

    对于Java而言。这些Api存在与Java.net这个包里面。因此只要导入这个包就可以准备网络编程了。网络� ......

    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随 ......

    Java读文件写文件操作

    By Aillo on March 27, 2008 7:56 PM | 0 Comments | Previous | Next | EDIT

    这里,Java的读文件和写文件都是基于字符流的,主要用到下面的几个类:

    1、FileReader----读取字符流

    2、FileWriter----写入字符流

    3、BufferedReader----缓冲指定文件的输入

    该类的方法有: ......

    1.继承的基本概念

    当多个类之间存在相同的属性和方法时,在父类中定义这些相同的属性和方法,所有的子类无需重新定义这些属性和方法,只需要通过extends语句声明继承Base类。

    (1)继承的东西

    a.当sub类和base类位于同一个包中时,su ......

    package cn.com;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.OutputStream;

    import sun.misc.BASE64Decoder;

    import sun.misc.BASE64Encoder;

    public class Base64Test

    {

    public static void main(String[ ......

    展开全文
  • 1.定义回调函数接口里面包含一个方法public interface CallBack {public void execute();}2.定义回调函数的实现public class BookCallBack implements CallBack{private String bookName;private String author;...

    1.定义回调函数接口

    里面包含一个方法

    public interface CallBack {

    public void execute();

    }

    2.定义回调函数的实现

    public class BookCallBack implements CallBack{

    private String bookName;

    private String author;

    public String getBookName() {

    return bookName;

    }

    public void setBookName(String bookName) {

    this.bookName = bookName;

    }

    public String getAuthor() {

    return author;

    }

    public void setAuthor(String author) {

    this.author = author;

    }

    @Override

    public void execute() {

    this.bookName = "The little prince";

    this.author = "Antoine";

    System.out.println("---------callback实现类 bookName=="+ this.bookName +" author==="+this.author);

    }

    }

    3.定义业务处理类

    业务处理类里的方法形参传入CallBack接口。

    业务处理类里的方法内容包括:处理业务和执行回调函数。

    //业务处理类

    public class TestBookCallBack {

    public void test(CallBack callBack){

    //1.处理业务

    System.out.println("---------业务处理类 TestBookCallBack---------");

    //2.执行回调函数

    callBack.execute();

    }

    }

    4.1 定义主函数-使用匿名内部类 实现callback

    import org.junit.Test;

    public class Main {

    @Test

    public void main() {

    TestBookCallBack testBookCallBack = new TestBookCallBack();

    testBookCallBack.test(new CallBack() {

    @Override

    public void execute() {

    System.out.println("-------------------Anonymous Inner Class-------------------");

    }

    });

    }

    }

    执行结果为

    ---------业务处理类 TestBookCallBack---------

    ---------Anonymous Inner Class---------

    4.2定义主函数,使用callback的实现类 实现callback

    import org.junit.Test;

    public class Main {

    @Test

    public void main() {

    TestBookCallBack testBookCallBack = new TestBookCallBack();

    BookCallBack bookCallBack = new BookCallBack();

    testBookCallBack.test(bookCallBack);

    System.out.println("---------main---------在主函数中 获取callback实现类里定义的变量值----------" + bookCallBack.getBookName()+"----"+ bookCallBack.getAuthor());

    }

    }

    执行结果

    ---------业务处理类 TestBookCallBack---------

    ---------callback实现类 bookName==The little prince author===Antoine

    ---------main---------在主函数中 获取callback实现类里定义的变量值----------The little prince----Antoine

    展开全文
  • java基础-回调函数(callback)作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用...

    java基础-回调函数(callback)

    作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

    回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

    在C和C++中有回调函数数一个显而易见的东西,但是在Java中它没有这个机制,只能我们手动实现。本篇博客就用Java实现一个简单的回调函数案例。

    一.Java回调机制

    1>.Class A 实现接口 CallBack callback;

    2>.Class A 中包含一个lB的引用b;

    3>.Class B 有一个参数为callback 的方法f(CallBack callback);

    4>.Class A的对象a调用Class B方法f(CallBack callback),换句话说,就是A类调用B类的某个方法c;

    5>.然后b就可以在f(CallBack callback)方法中调用A的方法,换句话说就是B类调用A类的某个方法d;

    二.案例展示

    1>.场景分析

    马上快到周五了,小明想要跟他的女朋友一起去看电影,以下是他们的通话记录:

    小明说:[亲爱的,周五有部电影要首映,我关注了好久,我们一起去看吧,从19:00~23:30都可以看,你啥时候下班呢?]

    小红说:[啊~啊~好刺激呀,我在吃辣条呢,一会打给你]

    小明说:[那我先忙手上的工作了!]

    小红说:[下班我回家换套衣服,要不晚上10:30不见不散!]

    2>.代码实现

    CallBack.java 代码如下:

    /*@author :yinzhengjie

    Blog:http://www.cnblogs.com/yinzhengjie/tag/Hadoop%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/EMAIL:y1053419035@qq.com*/

    packagecn.org.yinzhengjie.hdfs;public interfaceCallBack {/*** 这是小红知道答案时要调用的函数告诉小明,也就是回调函数,这个接口我是可以自定义哟。*/

    public abstract voidresolv(String result);

    }

    XiaoMing.java 文件内容如下:

    /*@author :yinzhengjie

    Blog:http://www.cnblogs.com/yinzhengjie/tag/Hadoop%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/EMAIL:y1053419035@qq.com*/

    packagecn.org.yinzhengjie.hdfs;/*** 这是小明

    * 实现了一个回调接口CallBack。*/

    public class XiaoMing implementsCallBack {/*** 创建一个对小红对象的引用*/

    privateXiaoHong xiaohong;/*** 小明的构造方法,持有对Xiaohong的引用*/

    publicXiaoMing(XiaoHong xiaohong) {this.xiaohong =xiaohong;

    }publicXiaoMing() {

    }/*** 小明通过这个方法去问小红问题*/

    public void askQuestion(final String question) throwsInterruptedException {

    Thread ask= newThread() {

    @Overridepublic voidrun() {try{

    xiaohong.execute(XiaoMing.this, question);

    }catch(Exception ex) {

    ex.printStackTrace();

    }

    }

    };

    ask.start();//ask.join();//小明问完问题挂掉电话就去忙工作上的事情了

    work();

    }public voidwork(){

    String work= "小明说:[那我先忙手上的工作了!]";

    System.out.println(work);

    }/*** 这是小红确定了看电影的具体时间,调用此方法告诉小明,就是所谓的小明的回调方法。*/

    public voidresolv(String result) {

    System.out.printf("小红说:[%s]\n",result);

    }

    }

    XiaoHong.java 文件内容如下:

    /*@author :yinzhengjie

    Blog:http://www.cnblogs.com/yinzhengjie/tag/Hadoop%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/EMAIL:y1053419035@qq.com*/

    packagecn.org.yinzhengjie.hdfs;/*** 这个就是小红*/

    public classXiaoHong {/***小明问的问题*/

    public void execute(CallBack callBack ,String question) throwsInterruptedException {

    System.out.println(question);//模拟小红办自己的事情需要很长时间

    System.out.println("小红说:[啊~啊~好刺激呀,我在吃辣条呢,一会打给你]");

    Thread.sleep(10000);//小红办完自己的事情之后就想到了答案是“晚上加班,去不了啦,下次吧!”

    String result = "下班我回家换套衣服,要不晚上10:30不见不散!";/*** 于是就打电话告诉小明,调用小明中的方法。*/callBack.resolv(result);

    }

    }

    Demo.java 文件内容如下:

    /*@author :yinzhengjie

    Blog:http://www.cnblogs.com/yinzhengjie/tag/Hadoop%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/EMAIL:y1053419035@qq.com*/

    packagecn.org.yinzhengjie.hdfs;public classDemo {public static void main(String[] args) throwsInterruptedException {

    XiaoHong xiaoHong= newXiaoHong();

    XiaoMing xiaoMing= newXiaoMing(xiaoHong);

    String question= "小明说:[亲爱的,周五有部电影要首映,我关注了好久,我们一起去看吧,从19:00~23:30都可以看,你啥时候下班呢?]";

    xiaoMing.askQuestion(question);

    }

    }

    3>.小结

    xiaoMing调用xiaoHong的execute方法,xiaoHong在execute方法中通过CallBack接口调用xiaoMing的resolve。

    展开全文
  • 回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。回调函数使用是必要的,在我们想通过一个统一接口实现不同的内容,这时用回掉函数非常合适。比如,我们为几个不同的设备分别...
  • 回调函数定义:传递一个函数A到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。...java回调函数的实现:java不支持指针,但是可以通过定义接口的方式实现回调。定义一个只有回调...
  • Java回调函数编写

    2021-03-10 06:13:27
    import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import org.xmlpull.v1.XmlSerializer;import android.app.ProgressDialog;import android.content.Conten...
  • 在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就 称为回调。在调用接口时,需要严格的按照定义的参数和方法调用,并且需要处理函数的...
  • 回调的使用场景就是在参数还未知的时候对其进行处理,参数在其他地方定义。...回调函数的demo案例如下:package com.jufanshare.demo;public class CallbackDemo {public static void main(String[] args...
  • 1 什么是回调函数回调...例如,在jquery中,我们常常获取后端数据,使用ajax请求,通过回调函数对后端返回的数据做处理,如下代码,success就是一个回调函数,那java能否做到呢?$.ajax({url:"demo_test.txt",succe...
  • 继续探究Java回调函数

    2021-02-28 14:39:01
    回调函数是一个相当难以理解和...在C或者C++中回调函数的定义:程序在调用一个函数时,将自己的函数的地址作为参数传递给程序调用的函数时(那么这个自己的函数称回调函数)Java中没有指针,不能传递方法的地址,一般...
  • import static java.lang.System.out;import static java.lang.System.err;import java.util.logging.Level;import java.util.logging....public class CallbackExample1 {private interface Responser {void on...
  • 在Android开发中经常用到回调机制,其中最典型的就是控件被触发的实现方式,简单而言,如Button被Click后,是系统调用了OnClick方法,而...下面举一个简单的例子介绍回调的实现方式:回调函数使用的简单例子程序员A...
  • 回调函数回调函数一般是在封装接口的时候,回调显得特别重要,我们首先假设有两个程序员在写代码,A程序员写底层驱动接口,B程序员写上层应用程序,然而此时底层驱动接口A有一个数据d需要传输给B,此时有两种方式:1...
  • Java中的回调函数

    2021-04-11 11:56:10
    唯一的缺点是丢失编译时检查您是否传递了有效参数.public class CallBack {private String methodName;private Object scope;public CallBack(Object scope, String methodName) {this.method...
  • 回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。在Java里面,我们使用接口来实现回调。举个例子所谓的回调,就是程序员A写了一...
  • 基于Java回调函数

    2021-03-26 11:21:33
    正题,谈回调函数 (Callback) 解释(引用于百度百科): 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所 指向的函数时,我们就说这是...
  • 再谈java回调函数

    2021-02-28 15:49:29
    又遇到了回调函数,这次打算写下来分享一下。所谓回调函数,或者在面向对象语言里叫回调方法,简单点讲,就是回头在某个时间(事件发生)被调用的函数。再详细点:就是一个函数A,作为参数,传入了另一个函数B,然后被B...
  • java中的回调函数

    2021-02-24 20:39:57
    CALLBACK,即回调函数,是一个通过函数指针调用的函数。...在java中也是存在回掉函数的,我们可以把回调函数理解为一个被作为参数传递的函数。 就英语单词的角度上,我们把CALLBACK这个单词拆开,即CALL和BACK,
  • JAVA回调函数(步骤)

    2021-04-17 06:29:13
    JAVA回调函数(方法)在C或者C++中回调函数的定义:程序在调用一个函数时,将自己的函数的地址作为参数传递给程序调用的函数时(那么这个自己的函数称回调函数)在java中:类A调用类B中的某个方法b,然后类B又在某个时候...
  • java回调函数-异步回调-简明讲解叙言:异步回调常用于某些业务需要很长时间处理,但是又需要立刻返回结果,这种情况都需要开辟线程独立处理需要长时间多的业务,也无处理完了,回调回调函数,再去处理与之有关的需要...
  • 回调函数的例子包括窗口进程以及我们在打印过程中设置的回调(为后台打印程序提供回调函数的地址,使其能更新状态,并在必要的时候中止打印)。另一个例子是API函数EnumWindows(),它能枚举目前系统内所有顶级窗口。...
  • Java C C++回调函数

    2021-03-01 10:13:34
    1、定义CALLBACK类型的函数指针 typedef int (CALLBACK*)(int x, int y)2、定义函数method,将CALLBACK类型的函数指针作为函数参数 void method(CALLBACK FP, int a, int b)void method(CALLBACK FP, int a, int b){...
  • //接口public interface HvCallback {public static interface PLATE_NO_CALLBACK extends Callback {int invoke(HvResult lpParam, String pString, int dwStrLen, int dwType);}}//接口实现,invoke中的参数与c++...
  • JNI 技术是双向的,既可以从Java 代码中调用原生函数,也可以从原生函数中直接创建Java 虚拟机,并调用Java 代码。但是在原生函数中调用java代码要写大量C代码,这对大多数java程序员来说是很头疼的。使用JNA,我们...
  • 又遇到了回调函数,这次打算写下来分享一下。所谓回调函数,或者在面向对象语言里叫回调方法,简单点讲,就是回头在某个时间(事件发生)被调用的函数。再详细点:就是一个函数A,作为参数,传入了另一个函数B,然后被B...
  • java回调函数

    2021-02-27 19:59:48
    在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就称为回调。在Java里面,我们使用接口来实现回调。所谓的回调,就是程序员A写了一段...
  • 那么,接下来,我们就用消息推送的场景,简简单单地讲解下回调函数的使用。直接看代码,先创建一个回调接口,MessageCallBack/*** @Author : JCccc* @CreateTime : 2019-2-12* @Description :回调函数需要执行的内容...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,409
精华内容 20,163
关键字:

javacallback回调函数

java 订阅