zoukankan      html  css  js  c++  java
  • Java中的回调

    我的理解:

      在A类中调用B类的方法b,在该b方法中执行完相应逻辑后又会调用A类的方法

     1 package base;
     2 
     3 /**
     4  * A类的回调接口
     5  * 
     6  * @author tab
     7  *
     8  */
     9 public interface CallBack {
    10     void solve(String result);
    11 }
     1 package base;
     2 
     3 /**
     4  * A类实现该回调接口
     5  * 
     6  * @author tab
     7  *
     8  */
     9 public class Qer implements CallBack {
    10     private Aser aser;// 关联被调方
    11 
    12     public Qer(Aser aser) {
    13         this.aser = aser;
    14     }
    15 
    16     public void askQues(final String question) {
    17         new Thread(new Runnable() {
    18             @Override
    19             public void run() {
    20                 aser.execute(Qer.this, question);
    21             }
    22         }).start();
    23         play();
    24     }
    25 
    26     private void play() {
    27         System.out.println("去玩了");
    28     }
    29 
    30     @Override
    31     public void solve(String result) {
    32         System.out.println(result);
    33     }
    34 }
     1 package base;
     2 
     3 /**
     4  * 在B类的方法中,会回调A类所实现的回调接口的回调方法
     5  * 
     6  * @author tab
     7  *
     8  */
     9 public class Aser {
    10 
    11     public void execute(CallBack callBack, String question) {
    12         System.out.println("问题是。。" + question);
    13         for (int i = 0; i < 100000; i++) {
    14         }
    15         String result = "答案是2";
    16         callBack.solve(result);
    17     }
    18 }
     1 package base;
     2 
     3 /**
     4  * 测试,A提出问题,并调用B类的解决问题方法,在该方法的最后B类通过回调A类的回调方法给出问题结果
     5  * 
     6  * @author tab
     7  *
     8  */
     9 public class Test {
    10     static Aser a = new Aser();
    11     static Qer qser = new Qer(a);
    12 
    13     public static void main(String[] args) {
    14         qser.askQues("1+2=?");
    15     }
    16 }
  • 相关阅读:
    如何查看哪些软件或进程占用了网速
    关于str.split(",")中间 什么时候该加\转义
    【转】servlet/filter/listener/interceptor区别与联系
    专题-Delphi/C++ Builder多线程编程与调试
    Android点击图标重新启动问题
    用PHP判断远程图片(文件)是否存在
    php获取目录中的所有文件名
    PHP读取一个目录下的文件个数
    2>&1 的用法说明
    【PHP操作sphinx】
  • 原文地址:https://www.cnblogs.com/tabchanj/p/5791150.html
Copyright © 2011-2022 走看看