日出星辰

          Java回調(diào)函數(shù)使用

               正常情況下開發(fā)人員使用已經(jīng)定義好的API,這個(gè)過程叫Call。但是有時(shí)這樣不能滿足需求,就需要程序員注冊自己的程序,然后讓事先定義好多API在合適的時(shí)候調(diào)用注冊的方法,這叫CallBack。

          “當(dāng)通常大家說的回調(diào)函數(shù)一般就是按照別人的定好的接口規(guī)范寫的,等待別人調(diào)用的函數(shù),在C語言中,回調(diào)函數(shù)通常通過函數(shù)指針來傳遞;在Java中,通常就是編寫另外一個(gè)類或類庫的人規(guī)定一個(gè)接口,然后你來實(shí)現(xiàn)這個(gè)接口,然后把這個(gè)實(shí)現(xiàn)類的一個(gè)對象作為參數(shù)傳給別人的程序,別人的程序必要時(shí)就會(huì)通過那個(gè)接口來調(diào)用你編寫的函數(shù)。

              使用技巧:定一個(gè)接口,在接口中聲明我們想調(diào)用的方法。

                              在另一個(gè)方法中注冊剛定義的回調(diào)接口

          package com.call;
          
          public interface Callback {
          
          	public void executeMethod();
          }
          

          -----------------------------------------------------

          package com.call;
          
          public class Tools {
          
          
          	public void getTime(Callback call) {
          		long start = System.currentTimeMillis();
          		call.executeMethod();
          		long end = System.currentTimeMillis();
          		System.out.println("cost time=" + (end - start));
          	}
          }
          

          ---------------------------------------------

          package com.call;
          //測試執(zhí)行方法消耗時(shí)間
          public class Main {
          
          	public static void main(String[] args) {
          
          		Tools tool = new Tools();
          		tool.getTime(new Callback() {
          			public void executeMethod() {
          				new Main().testMethod();
          			}
          		});
          
          	}
          
          	public void testMethod() {
          		for (int i = 0; i < 10000; i++) {
          			System.out.print("");
          		}
          	}
          
          }
          

          posted on 2011-08-16 16:14 日出星辰 閱讀(2103) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 麻城市| 皮山县| 金门县| 汉中市| 偏关县| 东莞市| 收藏| 年辖:市辖区| 柯坪县| 泗阳县| 玉林市| 腾冲县| 香格里拉县| 阿城市| 双辽市| 霍林郭勒市| 射洪县| 桂平市| 肥东县| 伊金霍洛旗| 德兴市| 浮山县| 康乐县| 施秉县| 湖南省| 静安区| 南华县| 辉县市| 维西| 岐山县| 常山县| 西充县| 上饶县| 邮箱| 北海市| 长武县| 杭锦旗| 汤原县| 上虞市| 夏津县| 深水埗区|