回撥函式簡單例項
阿新 • • 發佈:2019-02-07
類似於打電話,B給A打電話讓A三秒鐘後提醒他時間到了。
一、建立一個介面:CallBack.java(電話)
public interface CallBack {
public void callMeWhen3sLaterHappened(String info);
}
二、建立一個類實現介面:B.java
public class B implements CallBack{ public void sayHello(){ System.out.println("hello my name is B"); } //實現介面方法 public void callMeWhen3sLaterHappened(String info){ System.out.println(info); } public void callA(A a){ a.callMe3sLater(this);//給A打電話讓他提醒自己時間(把B這個物件也就是自己傳遞給A當做引數) } public static void main(String[] args){ A a = new A(); B b = new B(); b.callA(a); } }
三、建立一個類:A.java
import java.util.Timer; import java.util.TimerTask; public class A { public void sayHello(){ System.out.println("hello my name is A"); } /** * 3 秒鐘之後通知我 */ public void callMe3sLater(final CallBack b){ Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { b.callMeWhen3sLaterHappened("3秒鐘到了");//通知b三秒鐘到了,呼叫b的介面方法(類似於通過打電話才能傳遞資訊) } }, 3 * 1000); } }