首页 > 代码库 > java回调Test

java回调Test

回调:在A类中调用B类的方法时,A类反而调用在其他类(例如B类,通常是一个接口)中有具体实现的方法.

 

/**监听接口*/
interface Listener{
    public void callBacks();
}
/**受监听类*/
class A{
    Listener mListener;
    public A(){}
    public A(Listener listener){
        this.mListener= listener;
    }    
    /**设置监听器*/
    A setListener(Listener listener){
        this.mListener= listener;
        return this;
    }
    /**回调接口*/
    void call(){
        if(mListener== null)return;
        mListener.callBacks();
    }
}
/**主类*/
public final class Main implements Listener{
    public static void main(String []args){
        new Main().start();
    }
    private void start(){
        new A().call();// 空监听事件
        new A(this).call();
        new A(this).setListener(new Listener(){
            public void callBacks(){
                System.out.println("This is new callBacks method");
            }
        }).call();// 重新设置监听器
    
    }
    /**监听事件的具体实现*/
    public void callBacks(){
        System.out.println("call me");
    }
}    

  

 

java回调Test