對回調函數的理解

從開始學java起就一直在用系統提供的回調函數,今天在本身寫一個異步加載的工具類的時候,因爲業務的需求,須要對onPostExecute()進行單獨的處理。這就要用到回調函數了,雖然一直用系統的,可是本身寫回調函數的時候仍是有那麼點問題。上網看了別人的理解,發現說的不夠清楚明白。在這裏我把本身總結的寫一下,省的之後本身忘了 java

進入正題: 異步

                回調函數,顧名思義,就是往回調的函數。平時咱們用的監聽器其實就是用回調函數實現的。監聽器監聽了某個事件,可是對於這個事件怎麼處理,他並不知道。這就須要調用監聽器的人來定義對這個事件的處理了。 ide

其實際的用法,我用一個簡單的例子來實現,咱們在寫一個功能類,算帳的功能類。一個商品的單價是10,咱們須要算出來全部商品的總價。可是總共有多少商品,咱們並不知道。這就須要調用咱們這個工具類的人傳入這個參數。那麼這個功能就須要他來實現了。 函數

咱們寫的工具類: 工具

public class CallBack {
//定義一個接口,讓調用者實現這個接口,按照本身的意願來提供數據或者實現本身的想法
	public interface setNum {
		public int num();
	}
//這個類就是算總價的工具類,可是咱們不知道總共有多少商品,因此咱們在上面定義了一個接口,讓調用者來給咱們提供數據
	public void count(setNum setnum) {
		int a = setnum.num();
		int b = a * 20;
		System.out.println(b + "");
	}

}
調用者的代碼:

public class invoke {
	public static void main(String[] args) {

		CallBack cb = new CallBack();
		cb.count(new setNum() {

			@Override
			public int num() {
				int a = 10;
				return 10;
			}
		});
	}
}
上面的這個例子對於需求來講並不合適,由於往方法裏面傳入一個參數就OK了。可是這個寫就很方便你們理解。並且剛開始用回調的新手能夠比葫蘆畫瓢的去實現。

但願你們都能用好回調函數。 spa

相關文章
相關標籤/搜索