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 }
  • 相关阅读:
    GO学习-(17) Go语言基础之反射
    Go语言基础之time包
    Go语言标准库log介绍
    GO学习-(16) Go语言基础之文件操作
    GO学习-(15) Go语言基础之包
    GO学习-(14) Go语言基础之接口
    五种开源API网关实现组件对比
    Spring Junit4 Test
    Java泛型
    SQL 基本(Head First)
  • 原文地址:https://www.cnblogs.com/tabchanj/p/5791150.html
Copyright © 2011-2022 走看看