人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

用Java完成回調例程

用Java完成回調例程

更新時間:2022-08-16 文章作者:未知 信息來源:網絡 閱讀次數:

熟悉MS-Windows和XWindowSystem事件驅動編程模型的開發人員,習慣于傳遞在某種事件發生時調用(即“回調”)的函數指針。Java的面向對象模型目前并不支持方法指針,這樣似乎就不可能使用這種很好的機制。但我們并不是一點辦法都沒有! 
Java的接口支持提供了一種獲得回調的等價功能的機制。其技巧就是:定義一個簡單接口,并在該接口中聲明我們要調用的方法。 
例如,假定我們希望在某個事件發生時得到通知。我們可以定義一個接口: 
publicinterfaceInterestingEvent 

//這僅是一個常規方法。因此如果需要, 
//它可有返回值,也可接收參數。 
publicvoidinterestingEvent(); 

這使得我們可以控制實現該接口的類的任何對象。因此,我們不必關心任何外部類型信息。與在將C++代碼用于Motif時使用窗口小部件的數據域來容納對象指針的難以控制的C函數相比,這種方法要好得多。 
發出事件信號的類必須等待實現了InterestingEvent接口的對象,并在適當時候調用interestingEvent()方法。 
publicclassEventNotifier 

privateInterestingEventie; 
privatebooleansomethingHappened; 
publicEventNotifier(InterestingEventevent) 

//保存事件對象以備后用。 
ie=event; 
//還沒有要報告的事件。 
somethingHappened=false; 

//... 
publicvoiddoWork() 

//檢查在別處設置的謂詞。 
if(somethingHappened) 

//通過調用接口的這個方法發出事件信號。 
ie.interestingEvent(); 

//... 

//... 

在上例中,我使用somethingHappened謂詞來跟蹤是否應觸發事件。在許多情況下,調用此方法足以保證向interestingEvent()發出信號。 
希望接收事件通知的代碼必須實現InterestingEvent接口,并將自身引用傳遞給事件通知程序。 
publicclassCallMeimplementsInterestingEvent 

privateEventNotifieren; 
publicCallMe() 

//創建事件通知程序,并將自身引用傳遞給它。 
en=newEventNotifier(this); 

//為事件定義實際的處理程序。 
publicvoidinterestingEvent() 

//噢!必定發生了感興趣的事件! 
//執行某些操作... 

//... 
}

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 阜阳市| 马山县| 远安县| 桐庐县| 竹山县| 淮南市| 洛浦县| 都匀市| 远安县| 新竹市| 宾川县| 南乐县| 洛浦县| 凤城市| 盐城市| 石棉县| 延庆县| 蒙城县| 金塔县| 梅河口市| 普定县| 丽江市| 甘泉县| 枣强县| 深州市| 宜兰县| 同仁县| 稻城县| 孝昌县| 汶上县| 城固县| 津市市| 东阳市| 新民市| 抚顺市| 平果县| 舞阳县| 和田县| 崇仁县| 林口县| 长沙市|