java回調函數在網上了看了些例子,比較繞,不夠清晰,本身寫的一個例子比較通俗,java回調其實很簡單。html
舉個例子我是類B,我有個方法叫b(),如今我要調用類A中的方法a(),寫個代碼就是:java
public class ClassB{ //我是類 B public void b(){ //我是類B中的方法b() ClassA a = new ClassA();//我如今實例化A類,爲的是調用A類中的方法a() a.a(); //快看我如今開始調用A類中的a()方法了,代碼執行到這你們都懂,就是一個普通的調用其餘類的方法, //那麼回調怎麼回事,回調就是我執行a()方法結束後,須要再執行我本身(類B)的方法back() //回調就是這個意思,我調用你的方法,調用完你的方法後,再回過頭來調用本身的方法 //注意,有人就要說了 我在a.a()方法後面直接加上一個 back()不就好了,能夠,但那不是回調函數 //回調更像是一個約定,就是若是我調用了a()方法,那麼就必需要回調,而不須要顯示調用 } public void backs (){ System.out.println("我就是回調函數");//暫時不要管我,其實我就是回調函數 } }
再舉個例子就是:我是老闆(Boss),我有一部電話叫back,如今我安排了一個任務給員工(Emp),讓他給我打印一份報表(doPrint),打印好報表後再經過個人函數
電話back告訴我。那麼流程就很清晰了htm
public class Boss{ //我是老闆 Emp emp = new Emp();//如今我new一個員工出來 emp.doPrint(); //我如今讓這個員工去給我打印一份報表,報表打印好後直接經過back電話通知我。 public void back(){ System.out.println("老闆報表打印好了,請你放心!");//這個是個人電話 } }
上面說了blog
emp.doPrint();//報表打印好後 back(); //直接經過back電話告訴老闆,這種寫法不是回調
那麼我怎麼讓員工emp.doPring();打印好報表後打電話給我呢。能夠想象一下就是在emp.doPrint();打印報表這個方法中再次調用Boss的電話接口
public class Emp(){ //員工 public void doPrint(){ //員工開始打印報表了 System.out.println("老闆我報表打印好了");//這個時候員工把報表打印好了,再經過老闆的電話通知老闆,怎麼作呢? Boss boss = new Boss(); boss.back(); //這就是經過老闆的電話在我打印好了之後,告知老闆 } }
這樣就實現了我doPrint();//報表打印好後,回調Boss的電話通知Boss,這就是回調回調函數
以上都是僞代碼,只是爲了說明什麼是回調,可是在實際應用中,都是利用接口設置回調函數的class
接口回調函數參照:http://www.ej38.com/showinfo/java-197426.html方法