回調函數指的是A方法調用B方法進行運算,但B方法在運行的過程當中須要A方法指定如何運行,因此定義了一個接口,讓B方法實現了只要實現了這個接口的類的對象均可以做爲入參在B函數中執行。java
所以,在B方法執行的過程當中,須要調用重寫的A方法中的入參所規定的執行方法,這個過程就叫作函數回調,所以相比於普通的函數有更大的靈活性,不少的api中就是用到了這一方法。api
例子:ide
B方法(被調用的方法):函數
public class Test { public int count(int num1, int num2, Testhandler count) { return count.doCount(num1, num2); } }
約定的接口:code
public interface Testhandler { public int doCount(int num1, int num2); }
A方法(執行的函數):對象
public class Test002 { public static void main(String[] args) { int result = new Test().count(10, 20, new Testhandler() { @Override public int doCount(int num1, int num2) { return num1 + num2 + num1/num2 + num1*num2; } }); System.out.println(result); } }
顯然,最終的結果是Test方法在執行的過程當中回調了Test002中的所定義的具體的執行方法。接口
這一應用很是普遍。回調函數