java回調函數,看完就懂


java回調函數在網上了看了些例子,比較繞,不夠清晰,自己寫的一個例子比較通俗,java回調其實很簡單。

舉個例子我是類B,我有個方法叫b(),現在我要調用類A中的方法a(),寫個代碼就是:

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告訴我。那么流程就很清晰了

public class Boss{              //我是老板
    Emp emp = new Emp();//現在我new一個員工出來
    emp.doPrint();               //我現在讓這個員工去給我打印一份報表,報表打印好后直接通過back電話通知我。

    public void back(){
        System.out.println("老板報表打印好了,請你放心!");//這個是我的電話
    }
}

  上面說了

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,這就是回調

以上都是偽代碼,只是為了說明什么是回調,但是在實際應用中,都是利用接口設置回調函數的

接口回調函數參照:http://www.ej38.com/showinfo/java-197426.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM