日出星辰

          Java回調函數使用

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

          “當通常大家說的回調函數一般就是按照別人的定好的接口規范寫的,等待別人調用的函數,在C語言中,回調函數通常通過函數指針來傳遞;在Java中,通常就是編寫另外一個類或類庫的人規定一個接口,然后你來實現這個接口,然后把這個實現類的一個對象作為參數傳給別人的程序,別人的程序必要時就會通過那個接口來調用你編寫的函數。

              使用技巧:定一個接口,在接口中聲明我們想調用的方法。

                              在另一個方法中注冊剛定義的回調接口

          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;
          //測試執行方法消耗時間
          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 日出星辰 閱讀(2099) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 泰兴市| 库尔勒市| 都江堰市| 古丈县| 侯马市| 寻乌县| 洛浦县| 迁安市| 云和县| 齐齐哈尔市| 伊宁县| 运城市| 南投市| 吐鲁番市| 宁城县| 兰坪| 三穗县| 习水县| 武夷山市| 平度市| 和平区| 平塘县| 九江县| 昌邑市| 兰州市| 锡林郭勒盟| 葫芦岛市| 嘉义市| 星子县| 文昌市| 饶阳县| 旌德县| 淳化县| 左权县| 海门市| 新野县| 永登县| 洛浦县| 镇坪县| 堆龙德庆县| 临漳县|