所谓的回调,就是程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。 程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。
感谢这个博主点击打开链接,写的很好
回调接口
public interface CallBack {
void loginSuccess();
void loginFailed();
}
相当于A
public class Caller {
private CallBack callback;
private String name;
private String password;
public Caller(CallBack callback, String name, String password){
this.callback = callback;
this.name = name;
this.password = password;
}
public void doLogin(){
if(name.equals("hung") && password.equals("123456")){
callback.loginSuccess();
}else {
callback.loginFailed();
}
}
}
相当于B
public class Called implements CallBack{
private Caller caller;
public void method(){
//把当前实现接口的对象(this)传递给Caller,所以Caller中CallBack声明的引用可以引用该对象,并且调用CallBack接口中对应的函数
<span style="white-space:pre"> </span>caller = new Caller(this, "HungXum", "1234");
<span style="white-space:pre"> </span>caller.doLogin();
}
@Override
public void loginSuccess() {
System.out.println("登陆成功!");
}
@Override
public void loginFailed() {
System.out.println("登陆失败!");
}
}
Main函数
public class Main {
public static void main(String[] args) {
Called called = new Called();
called.method();
}
}