所謂回調,就是客戶程序C調用服務程序S中的某個函數A,然后S又在某個時候反過來調用C中的某個函數B,對于C來說,這個B便叫做回調函數。例如Win32下的窗口過程函數就是一個典型的回調函數。一般說來,C不會自己調用B,C提供B的目的就是讓S來調用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名誰,所以S會約定B的接口規范(函數原型),然后由C提前通過S的一個函數R告訴S自己將要使用B函數,這個過程稱為回調函數的注冊,R稱為注冊函數。Web Service以及Java的RMI都用到回調機制,可以訪問遠程服務器程序
六 和 彩開獎 重新舉個例子來理解回調:
我遇到了一個問題,便用家里的固話打給我的同事,他說不太清楚,稍后給我回復。我說我一會要出去,你想到了之后打我手機吧。沒過多久,我同事就打手機過來告訴了我答案
六 和 彩 資料 下面是代碼:
1、先定義一個接口,規定回答問題的條件是打我手機
1. public interface CallBack {
2. //通過手機回答
3. void CallIphone();
4. }
2、調用者(我):
1. public class Me {
2. public void askQuestion(){
3. System.out.println("撥打固話問1+1=?");
4. }
5. }
3、被調用者(同事):
1. public class You {
2.
3. public void answer(CallBack callBack){
4. //進行回調
5. callBack.CallIphone();
6. }
7.
8. public static void main(String[] args) throws InterruptedException {
9. new Me()。askQuestion();
10. Thread.sleep(3000);
11. new You()。answer(new CallBack() {
12. //實現接口,即回答問題的方式
13. public void CallIphone() {
14. System.out.println("撥打手機回答等于2");
15. }
16. });
17. }
18. }
4、顯示結果
撥打固話問1+1=?
撥打手機回答等于2
代碼很簡單,理解也很膚淺,希望對大家有用。