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