真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java中的函數(shù)回調(diào)代碼 java回調(diào)函數(shù)寫法

java中怎樣定義回調(diào)函數(shù)

程序員A寫了一段程序(程序a),其中預留有回調(diào)函數(shù)接口,并封裝好了該程序。程序員B要讓a調(diào)用自己的程序b中的一個方法,于是,他通過a中的接口回調(diào)自己b中的方法。目的達到。在C/C++中,要用回調(diào)函數(shù),被掉函數(shù)需要告訴調(diào)用者自己的指針地址,但在JAVA中沒有指針,怎么辦?我們可以通過接口(interface)來實現(xiàn)定義回調(diào)函數(shù)。

創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設公司,我們專注成都網(wǎng)站設計、網(wǎng)站制作、網(wǎng)絡營銷、企業(yè)網(wǎng)站建設,友情鏈接,廣告投放為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設計到用戶體驗提高,創(chuàng)新互聯(lián)力求做到盡善盡美。

假設我是程序員A,以下是我的程序a:

[java] view plaincopyprint?

public class Caller

{

public MyCallInterface mc;

public void setCallfuc(MyCallInterface mc)

{

this.mc= mc;

}

public void call(){

this.mc.method();

}

}

還需要定義一個接口,以便程序員B根據(jù)我的定義編寫程序?qū)崿F(xiàn)接口。

public interface MyCallInterface

{

public void method();

}

于是,程序員B只需要實現(xiàn)這個接口就能達到回調(diào)的目的了:

public class B implements MyCallInterface

{

public void method()

{

System.out.println("回調(diào)");

}

public static void main(String args[])

{

Caller call = new Caller();

call.setCallfuc(new B());

call.call();

}

}

Java 技巧:用 Java 實現(xiàn)回調(diào)例程

熟悉 MS Windows 和 X Window System 事件驅(qū)動編程模型的開發(fā)人員 習慣于傳遞在某種事件發(fā)生時調(diào)用(即 回調(diào) )的函數(shù)指針 Java 的面向?qū)ο竽P湍壳安⒉恢С址椒ㄖ羔?這樣似乎就不可能使用這種很好的機制 但我們并不是一點辦法都沒有! Java 的接口支持提供了一種獲得回調(diào)的等價功能的機制 其技巧就是 定義一個簡單接口 并在該接口中聲明我們要調(diào)用的方法 例如 假定我們希望在某個事件發(fā)生時得到通知 我們可以定義一個接口 public interface InterestingEvent{// 這僅是一個常規(guī)方法 因此如果需要 // 它可有返回值 也可接收參數(shù) public void interestingEvent ();}這使得我們可以控制實現(xiàn)該接口的類的任何對象 因此 我們不必關(guān)心任何外部類型信息 與在將 C++ 代碼用于 Motif 時使用窗口小部件的數(shù)據(jù)域來容納對象指針的難以控制的 C 函數(shù)相比 這種方法要好得多 發(fā)出事件信號的類必須等待實現(xiàn)了 InterestingEvent 接口的對象 并在適當時候調(diào)用 interestingEvent() 方法 public class EventNotifier{private InterestingEvent ie;private boolean somethingHappened;public EventNotifier (InterestingEvent event){// 保存事件對象以備后用 ie = event;// 還沒有要報告的事件 somethingHappened = false;}// public void doWork (){// 檢查在別處設置的謂詞 if (somethingHappened){// 通過調(diào)用接口的這個方法發(fā)出事件信號 ie interestingEvent ();}// }// }在上例中 我使用 somethingHappened 謂詞來跟蹤是否應觸發(fā)事件 在許多情況下 調(diào)用此方法足以保證向 interestingEvent() 發(fā)出信號 希望接收事件通知的代碼必須實現(xiàn) InterestingEvent 接口 并將自身引用傳遞給事件通知程序 public class CallMe implements InterestingEvent{private EventNotifier en;public CallMe (){// 創(chuàng)建事件通知程序 并將自身引用傳遞給它 en = new EventNotifier (this);}// 為事件定義實際的處理程序 public void interestingEvent (){// 噢!必定發(fā)生了感興趣的事件!// 執(zhí)行某些操作 }// } lishixinzhi/Article/program/Java/JSP/201311/19423

java 如何寫回調(diào)方法

public?class?Caller??

{??

public?MyCallInterface?mc;??

public?void?setCallfuc(MyCallInterface?mc)??

{??

this.mc=?mc;??

}??

public?void?call(){??

this.mc.method();??

}??

}

接口

public?interface?MyCallInterface??

{??

public?void?method();??

}

測試

public?class?B?implements?MyCallInterface??

{??

public?void?method()??

{??

System.out.println("回調(diào)");??

}??

public?static?void?main(String?args[])??

{??

Caller?call?=?new?Caller();??

call.setCallfuc(new?B());??

call.call();??

}??

}


分享文章:java中的函數(shù)回調(diào)代碼 java回調(diào)函數(shù)寫法
鏈接URL:http://weahome.cn/article/ddgspgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部