日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 线程 回调函数_java 回调函数实现方式

發布時間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 线程 回调函数_java 回调函数实现方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

回調函數定義:

傳遞一個函數A到另一個函數B中,并且這個函數B執行函數A。我們就說函數A叫做回調函數。如果沒有名稱,就叫做匿名回調函數.

或者將一個方法對象a 傳遞給另一個方法對象 b,讓后者在適當的時候執行 a,那么a就叫做回調函數。

也就是說,只要傳遞的參數不是基本類型,而是函數的指針(引用)即為回調。

java中回調函數的實現:

java不支持指針,但是可以通過定義接口的方式實現回調。

定義一個只有回調函數的接口,并將該接口對象傳遞給調用函數,則在調用函數執行時,會執行回調函數。

轉載一個例子:

如果我們要測試一個類的方法的執行時間,通常我們會這樣做:

public class TestObject {

/**

* 一個用來被測試的方法,進行了一個比較耗時的循環

*/

public static void testMethod(){

for ( int i= 0 ; i< 100000000 ; i++){

}

}

/**

* 一個簡單的測試方法執行時間的方法

*/

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()方法,就只有"//測試方法"是需要改變的,下面我們來做一個函數實現相同功能但更靈活:

首先定一個回調接口:

public interface CallBack {

//執行回調操作的方法

void execute();

}

然后再寫一個工具類:

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()方法就可以實現回調功能。

總結

以上是生活随笔為你收集整理的java 线程 回调函数_java 回调函数实现方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。