Java回调机制

1.实现方式
1.1A类实现CallBack,同时拥有B类的引用,并且把该类的CallBact对象传给B类
1.2B类从A类获得CallBact对象,并创建call()方法调用CallBact类的方法(即调用A类实现CallBact类的onCall(String s)方法)
1.3A类中callB()方法调用B类引用的方法
1.4当用户实例化A类并调用callB()方法时,实际是调用本身实现CallBack的onCall(String s)方法,即回调
2.举例

//回调接口
public interface CallBack {
    void onCall(String s);
}
//A类
public class A implements CallBack{

    private B b;
    public A(B b){
        this.b = b;
        b.setCallBackListener(this);
    }
    @Override
    public void onCall(String s) {
        // TODO Auto-generated method stub
        System.out.println("A:onCall "+s);
    }

    public void callB(){
        b.call();
    }

}
//B类
public class B {

    private CallBack callBack;
    public void setCallBackListener(CallBack callBack) {
        // TODO Auto-generated method stub
        this.callBack = callBack;
    }

    public void call(){
        callBack.onCall("B:call");
    }

}
//测试类
public class Test {
    public static void main(String[] args){
        A a = new A(new B());
        a.callB();
    }
}

2.参考:http://blog.csdn.net/xiaanming/article/details/8703708/

你可能感兴趣的:(回调)