回调:在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"); } }
时间: 2024-10-17 03:08:37