java回调机制

原创 2016年08月29日 17:17:33

讲个简单的例子,当A让B帮忙做某件事的时候,恰巧B在忙于另外一件事,这时候B对A说你先做你自己的事,等我把手头上的事做完我再找你,然后再帮你做,那B做完去找A的这个动作就可以称为回调。下面进入demo:

1、首先定义一个接口,在这我叫做MyCallBack

public interface MyCallBack {

void save(String result);

}

2、然后定义两个类A和B,分别表示A和B两个人,A类:

public class A implements MyCallBack {

    private B b;

    public A(B b) {
        this.b = b;
    }

    /**
    * A通过这个方法向B提问
    */
    public void askQuestion(final String question) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                b.executeMessage(A.this, question);
                System.out.println("第二步:A去做自己的事去了,等B好了再通知A");
            }
        }).start();
    }

    @Override
    public void save(String result) {
        System.out.println("第五步:B通知A他做完了事,可以帮A做事情了" + result);
    }
}

B类:

public class B {

    /**
     * 相当于B类有参数为CallBack callBack的f()---->背景三
     * 
     * @param callBack 回调接口
     * @param question A让B做的事
     */
    public void executeMessage(final CallBack callBack, String question) {
        System.out.println(question);
        // 模拟B办自己的事情需要很长时间
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("第三步:B去做自己的事了");
                try {
                    Thread.sleep(10000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("第四步:B做完自己的事了");
                /**
                 * B办完自己的事情之后立刻通知A他现在有空了
                 */
                String result = "";
                /**
                 * 于是就告诉A,调用A中的方法 这就相当于B类反过来调用A类的方法D
                 */
                callBack.save(result);
            }
        }).start();
    }
}

3、在写一个测试类,来测试这个接口:Test类

public class Test {

public static void main(String[] args) {
    /**
     * new 一个B
     */
    B b = new B();

    /**
     * new 一个A
     */
    A a = new A(b);

    /**
     * A让B帮忙做事
     */
    a.askQuestion("第一步:A让B帮忙!!!!");
}

4、运行结果:

运行结果

好了,最简单的回调就到这里了

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java回调机制

  • 2015年11月02日 20:32
  • 14KB
  • 下载

java回调机制及其实现

1.  什么是回调函数     回调函数(callback Function),顾名思义,用于回调的函数。  回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。回调函数是一个工作...

Java/Android回调机制小示例

  • 2016年03月29日 23:05
  • 9KB
  • 下载

Java回调机制

  • 2016年03月06日 18:15
  • 6KB
  • 下载

design principle:java 回调与委派/委托机制

博客 design principle:模拟 android Button 控件点击事件   主要说了一下模拟 android 的 Listener 模式,其实这就是一种委派与回调机制的体现。委派,也...

关于JAVA中的listener回调机制,以及其在Android中的使用

第一篇博客,献给我的舍友逼哥 @bigname22  博客:http://my.csdn.net/bigname22 在学习Android的过程中接触到了java的回调机制,比如按钮的监听回调...

深入浅出Java回调机制

原文地址:http://hellosure.iteye.com/blog/1130176 深入浅出Java回调机制 博客分类:  Java技术 Java回调异步调用  ...

以小故事的形式讲述Java回调机制,非常有助于理解。

Java的回调机制,可能都听说过,当然这个机制不仅限于Java,其他各门语言,都应该有使用。但是怎么理解,就有点困惑。 还有什么是抽象类回调,什么是接口回调,以及二者之间的差别。也不是一句两句就能说...

深入浅出Java回调机制

前几天看了一下Spring的部分源码,发现回调机制被大量使用,觉得有必要把Java回调机制的理解归纳总结一下,以方便在研究类似于Spring源码这样的代码时能更加得心应手。  注:本文不想扯很多...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java回调机制
举报原因:
原因补充:

(最多只允许输入30个字)