回调方法和递归方法 一样,并不是一种特殊的方法,只是一种实现某种功能的思路。
要实现的功能是:A类调用了B类的方法,B类反过来调用A类的方法。
示例代码:
创建一个ICallback 接口,有一个callback抽象方法。
public interface ICallback {
void callback();
}
创建类B,有个ICallback 成员变量,由setCallback动态设置ICallback的引用对象。这样的话实现了谁被传进来一会就回调谁。
public class B {
ICallback callback;
public void setCallback(ICallback callback) {
this.callback = callback;
}
public void callA() {
System.out.println("我是B类的callA方法,我要回调A类的callback方法");
callback.callback();
}
}
创建类A,实现了ICallback接口。实现了callback方法。另外有个callB方法,创建一个B对象,调用B的setCallback时把自己给传了进去。然后调用B类的callA()方法,结果callA()方法会反过来调用A类的callback方法。
public class A implements ICallback {
@Override
public void callback() {
System.out.println("我是A类callback方法,我被B回调了");
}
public void callB() {
B a = new B();
a.setCallback(this);
System.out.println("我是A类的callB方法,我要调用B类的callA方法");
a.callA();
}
}
测试代码:
A a = new A();
a.callB();
运行结果:
<pre>
我是A类的callB方法,我要调用B类的callA方法
我是B类的callA方法,我要回调A类的callback方法
我是A类callback方法,我被B回调了
</pre>
本文代码下载:百度网盘
网友评论