更多 Java 基础知识方面的文章,请参见文集《Java 基础知识》
- 调用者
Caller
实现一个接口Callback
- 调用者
Caller
通过构造方法传入一个 被调用者ToBeCalled
对象 - 调用者
Caller
调用ToBeCalled
对象的具体方法,传入自身的对应引用 - 被调用者
ToBeCalled
对象在完成具体方法后,调用Caller
对象的回调方法callback
示例如下:
public class Callback_Test {
public static void main(String[] args) {
Caller caller = new Caller(new ToBeCalled());
caller.askQuesion();
}
}
interface Callback {
public void callback(Object obj);
}
class Caller implements Callback {
private ToBeCalled tb;
public Caller(ToBeCalled tb) {
this.tb = tb;
}
// 异步回调
public void askQuesion() {
new Thread() {
public void run() {
System.out.println("提出问题");
tb.answer(Caller.this);
}
}.start();
}
public void callback(Object obj) {
System.out.println("得到答案:" + obj);
}
}
class ToBeCalled {
// 计算过程
public void answer(Callback cb) {
System.out.println("计算结果");
int result = 10;
cb.callback(result);
}
}