日出星辰

          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 日出星辰 閱讀(2103) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 康保县| 五常市| 灵武市| 新宁县| 梁平县| 枣庄市| 轮台县| 隆尧县| 清流县| 建湖县| 木兰县| 封开县| 新干县| 什邡市| 巴南区| 开平市| 江孜县| 秭归县| 乐清市| 汉阴县| 威远县| 临澧县| 巴彦淖尔市| 华蓥市| 额尔古纳市| 营口市| 汉寿县| 天祝| 大丰市| 吴旗县| 南阳市| 拉萨市| 凉城县| 黄梅县| 乌恰县| 贡山| 阳江市| 东莞市| 蕉岭县| 乐昌市| 思南县|