- 1. JAVA開發(fā)工具(集成圖形開發(fā)環(huán)境和多線程調試器) V3...
- 2. 手機人人 (for Java校內通手機客戶端) 官方安裝版
- 3. Java反編譯工具
- 4. 模擬器運行需要JAVA虛擬機(手機軟件下載)
- 5. Seurat|基于Java的圖像處理工具 1.0.1
- 6. Sun Java SE Runtime Environment (JRE) for 6 Upda
- 7. Javascript混淆加密器1.2破解版
- 8. Sothink JavaScript Web Scroller (網頁卷動條)V2....
- 9. eclipse java編譯器 中文免費版
Java回調函數
下面使用java回調函數來實現一個測試函數運行時間的工具類:
如果我們要測試一個類的方法的執(zhí)行時間,通常我們會這樣做:
java 代碼
public class TestObject {
/**
* 一個用來被測試的方法,進行了一個比較耗時的循環(huán)
*/
public static void testMethod(){
for ( int i= 0 ; i< 100000000 ; i++){
}
}
/**
* 一個簡單的測試方法執(zhí)行時間的方法
*/
public void testTime(){
long begin = System.currentTimeMillis(); //測試起始時間
testMethod(); //測試方法
long end = System.currentTimeMillis(); //測試結束時間
System.out.println("[use time]:" + (end - begin)); //打印使用時間
}
public static void main(String[] args) {
TestObject test=new TestObject();
test.testTime();
}
}
大家看到了testTime()方法,就只有"//測試方法"是需要改變的,下面我們來做一個函數實現相同功能但更靈活:
首先定一個回調接口:
java 代碼
public interface CallBack {
//執(zhí)行回調操作的方法
void execute();
}
然后再寫一個工具類:
java 代碼
public class Tools {
/**
* 測試函數使用時間,通過定義CallBack接口的execute方法
* @param callBack
*/
public void testTime(CallBack callBack) {
long begin = System.currentTimeMillis(); //測試起始時間
callBack.execute(); ///進行回調操作
long end = System.currentTimeMillis(); //測試結束時間
System.out.println("[use time]:" + (end - begin)); //打印使用時間
}
public static void main(String[] args) {
Tools tool = new Tools();
tool.testTime(new CallBack(){
//定義execute方法
public void execute(){
//這里可以加放一個或多個要測試運行時間的方法
TestObject.testMethod();
}
});
}
}
大家看到,testTime()傳入定義callback接口的execute()方法就可以實現回調功能