JAVA回调

来源:互联网 发布:淘宝是什么 编辑:程序博客网 时间:2024/04/27 18:02

场景:
学弟写代码的时候遇到一个问题要请教学长。
学长说你把代码发过来看看,可能需要一点时间,你先做其他,解决了我给你发QQ消息。
过了学弟收到了QQ消息,学弟解决了问题。

//qq发消息是个接口函数public interface  QQ{public void msg(String txt);}
//学弟类//包含一个学长对象引用//实现了QQ发消息的接口方法public class XD implements QQ{  public  XZ xz;  public XD(XZ xz){  //学弟认识一个乐于助人的学长    this.xz = xz;  }  public void ask(String question ){        System.out.println("遇到个Bug,问问学长");        xz.help(XD.this, question);      }  @Override  public void msg(String txt) {    //收到答案后做的事情可以写在这里    bugFix(txt);  }  public void bugFix(String txt){    System.out.println("根据"+txt+"这个bug解决了,学长好棒!");  }  }
//学长类//因为乐于助人,所以有个help函数public class  XZ{  //学长通过qq和学弟交流  public void help(QQ qq,String question){    System.out.println("我收到你的问题啦,我帮你看看,解决了发你qq上");    try {      System.out.println("学长努力调试中。。。");      Thread.sleep(3000);    } catch (InterruptedException e) {      e.printStackTrace();    }    qq.msg("答案");  }}

模拟调用

public class MainClass {  public static void main(String[] args){    new XD(new XZ()).ask("问题");  }}
0 0