1.回调的简单设计如下:
package com.listercai.top;
public class A {
private CallBack callBack;
private AnotherCallBack anotherCallBack;
public void SetCallBack(CallBack callBack,AnotherCallBack anotherCallBack)
{
this.callBack=callBack;
this.anotherCallBack=anotherCallBack;
}
public void AHelper()
{
callBack.call();
anotherCallBack.call();
}
public static void main(String[] args) {
A a=new A();
//设置回调监听
//第二接口回调使用匿名内部类,简化书写
a.SetCallBack(new B(), new AnotherCallBack() {
@Override
public void call() {
//实现自己的逻辑
System.out.println("");
}
});
//通过a的方法去调用回调接口里面的函数
a.AHelper();
}
}
package com.listercai.top;
public class B implements CallBack{
@Override
public void call()
{
System.out.println("do something need longtime");
}
}
package com.listercai.top;
public interface CallBack {
//接口只能有final修饰的常量
public static final String InterfaceName="CallBack";
public void call();
}
package com.listercai.top;
public interface AnotherCallBack {
public void call();
}
里面设计了2种方式,分别是使用了实现了回调接口的类和匿名内部类的方式,第2种是现在普遍的用法。
什么是java中的回调,简单理解就是,A类调用了B类中的某C方法,反过来B类也调用了A类中的方法D,这个D方法就是回调函数。