接口回调

来源:互联网 发布:sql修改字段数据类型 编辑:程序博客网 时间:2024/05/17 21:55

1、首先有一个接口CallBack,接口中有个Operate方法。
2、A类实现了CallBack接口,并重写Operate方法。
3、B类中有一个方法,且这个方法有个参数为CallBack类型。
4、A类拥有B类的引用,这时在A类中就可以执行B类中的方法,在A类中执行B类中包含CallBack参数的方法,这个参数为A类自身的引用,那么就可以在B类中回调A类中的Operate方法了。

示例代码如下

public interface CallBack {    void solve(String result);}
public class A implements CallBack{    private B b;    public A(B b) {        this.b = b;    }    public void askQuestion(final String question){        doOtherSomething();        new Thread( new Runnable(){            @Override            public void run() {                b.solveQuestion(A.this, question);            }        }).start();        doOtherSomething();    }    private void doOtherSomething() {        for (int i = 0; i < 50; i++) {            System.out.println("此时我还在做别的事情  "+i);        }    }    @Override    public void solve(String result) {        System.out.println(result);    }}
public class B {    public void solveQuestion(CallBack callback,String question){        callback.solve("hello world!");    }}
public class Test {    public static void main(String[] args) {        B b = new B();        A a = new A(b);        a.askQuestion("学一门新的语言最先写什么");    }}
0 0