回调函数定义:
传递一个函数A到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称,就叫做匿名回调函数。或者将一个方法对象A 传递给另一个方法对象 B,让后者在适当的时候执行A,那么A就叫做回调函数。
回调函数实例理解:
消防员给出一个电话号码119(这是每个人都知道的,119就相当于Java中的一个接口),并且在每一个地方都设置一个发生火灾时的检测装置,如果危急到人们的人生安全时,那么市民就可以通过119给消防员打电话,然后叫消防员来处理。回调的意思就是说,消防员给我们一个火警电话,发生火灾时我们就可以用这个号码给消防员打电话,但最终处理问题的不是我们自己,而是消防员。我们就相当于是一个信息反馈者,只负责给消防员反馈信息,最终该处理者还是消防员。
代码如下:
1.定义回调接口及回调中会被执行的方法,即拨打求救电话这个方法。
public interface MyCallback {
void call();
}
2.定义可以对回调接口进行操作的类
public class Caller {
private MyCallback myCallback;
public void doCall(){
myCallback.call();
}
public void setMyCallback(MyCallback myCallback) {
this.myCallback = myCallback;
}
}
3.实例化具体回调函数,实现回调方法 ,告知消防员来进行救火
public class CallBackTest {
public static void main(String[] args) {
Caller caller = new Caller();
caller.setMyCallback(new MyCallback() {
@Override
public void call() {
System.out.println("Help");
}
});
caller.doCall();
}
}