正常情況下開發人員使用已經定義好的API,這個過程叫Call。但是有時這樣不能滿足需求,就需要程序員注冊自己的程序,然后讓事先定義好多API在合適的時候調用注冊的方法,這叫CallBack。
“當通常大家說的回調函數一般就是按照別人的定好的接口規范寫的,等待別人調用的函數,在C語言中,回調函數通常通過函數指針來傳遞;在Java中,通常就是編寫另外一個類或類庫的人規定一個接口,然后你來實現這個接口,然后把這個實現類的一個對象作為參數傳給別人的程序,別人的程序必要時就會通過那個接口來調用你編寫的函數。”
使用技巧:定一個接口,在接口中聲明我們想調用的方法。
在另一個方法中注冊剛定義的回調接口
package com.call;
public interface Callback {
public void executeMethod();
}
-----------------------------------------------------
package com.call;
public class Tools {
public void getTime(Callback call) {
long start = System.currentTimeMillis();
call.executeMethod();
long end = System.currentTimeMillis();
System.out.println("cost time=" + (end - start));
}
}
---------------------------------------------
package com.call;
//測試執行方法消耗時間
public class Main {
public static void main(String[] args) {
Tools tool = new Tools();
tool.getTime(new Callback() {
public void executeMethod() {
new Main().testMethod();
}
});
}
public void testMethod() {
for (int i = 0; i < 10000; i++) {
System.out.print("");
}
}
}