博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CallBack
阅读量:4592 次
发布时间:2019-06-09

本文共 1926 字,大约阅读时间需要 6 分钟。

package com.test.callback;public interface CallBack {    public void solve(String result);}
package com.test.callback;public class Test {    public static void main(String[]args){        /**         * new 一个小李         */        Li li = new Li();         /**         * new 一个小王         */        Wang wang = new Wang(li);                /**         * 小王问小李问题         */        wang.askQuestion("1 + 1 = ?");    }}
package com.test.callback;public class Wang implements CallBack {  /**   * 小李对象的引用   * 相当于----->背景二   */  private Li li;   /**   * 小王的构造方法,持有小李的引用   * @param li   */  public Wang(Li li){      this.li = li;  }    /**   * 小王通过这个方法去问小李的问题   * @param question  就是小王要问的问题,1 + 1 = ?   */  public void askQuestion(String question){      //这里用一个线程就是异步,      new Thread(new Runnable() {          @Override          public void run() {              /**               * 小王调用小李中的方法,在这里注册回调接口               * 这就相当于A类调用B的方法C               */              li.executeMessage(Wang.this, question);           }      }).start();            //小网问完问题挂掉电话就去干其他的事情了,诳街去了      play();  }  public void play(){      System.out.println("我要逛街去了");  }  /**   * 小李知道答案后调用此方法告诉小王,就是所谓的小王的回调方法   */  @Override  public void solve(String result) {      System.out.println("小李告诉小王的答案是--->" + result);  }  }
package com.test.callback;public class Li {  /**   * 相当于B类有参数为CallBack callBack的f()---->背景三   * @param callBack     * @param question  小王问的问题   */  public void executeMessage(CallBack callBack, String question){      System.out.println("小王问的问题--->" + question);      //模拟小李办自己的事情需要很长时间      for(int i=0; i<10000;i++){                }            /**       * 小李办完自己的事情之后想到了答案是2       */      String result = "答案是2";            /**       * 于是就打电话告诉小王,调用小王中的方法       * 这就相当于B类反过来调用A的方法D       */      callBack.solve(result);               }  }

 

我要逛街去了

小王问的问题--->1 + 1 = ?
小李告诉小王的答案是--->答案是2

转载于:https://www.cnblogs.com/tonggc1668/p/10081651.html

你可能感兴趣的文章
以太坊(一)
查看>>
禁用php函数
查看>>
11.5随笔
查看>>
[err]default argument given for parameter 3 of '***'
查看>>
spring bean depends on
查看>>
51nod1256【exgcd求逆元】
查看>>
HTTP长连接和短连接
查看>>
c# 调用 c++写的DLL
查看>>
判断是否出现垂直滚动条
查看>>
袁韬淳第五次作业
查看>>
C#中怎样实现序列化和反序列化
查看>>
计算机网络(谢希仁版)——第二章回顾
查看>>
月薪20K的程序员整理的C语言的学习笔记,值得学习!
查看>>
Swing应用开发实战系列之二:设计日期选择面板窗口
查看>>
Swing应用开发实战系列之一:自定义JdbcTemplate
查看>>
Java随笔一:String类中方法split
查看>>
(转)使用LVS实现负载均衡原理及安装配置详解
查看>>
01整数规划
查看>>
a recipe kindly provided by Dimas for kikuchi
查看>>
icon design隐私条款
查看>>