Java回調(diào)函數(shù)使用
正常情況下開發(fā)人員使用已經(jīng)定義好的API,這個過程叫Call。但是有時這樣不能滿足需求,就需要程序員注冊自己的程序,然后讓事先定義好多API在合適的時候調(diào)用注冊的方法,這叫CallBack。
“當(dāng)通常大家說的回調(diào)函數(shù)一般就是按照別人的定好的接口規(guī)范寫的,等待別人調(diào)用的函數(shù),在C語言中,回調(diào)函數(shù)通常通過函數(shù)指針來傳遞;在Java中,通常就是編寫另外一個類或類庫的人規(guī)定一個接口,然后你來實(shí)現(xiàn)這個接口,然后把這個實(shí)現(xiàn)類的一個對象作為參數(shù)傳給別人的程序,別人的程序必要時就會通過那個接口來調(diào)用你編寫的函數(shù)。”
使用技巧:定一個接口,在接口中聲明我們想調(diào)用的方法。
在另一個方法中注冊剛定義的回調(diào)接口
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; //測試執(zhí)行方法消耗時間 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(""); } } }