從開始學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