同步回调(synchronous callback)是一种编程模式,在这种模式中,回调函数会在调用它的代码中被同步执行。简单来说,就是在调用回调函数的地方等待它完成,然后再继续执行后续的代码。
在Java中,你可以使用接口和实现来实现同步回调。下面是一个简单的示例:
- 定义回调接口:
public interface Callback {
void onComplete(String result);
}
- 实现回调接口:
public class MyCallback implements Callback {
@Override
public void onComplete(String result) {
System.out.println("Callback received result: " + result);
}
}
- 使用回调接口:
public class Processor {
private Callback callback;
public Processor(Callback callback) {
this.callback = callback;
}
public void process() {
// 模拟一些处理
try {
Thread.sleep(1000); // 1秒钟的延迟
} catch (InterruptedException e) {
e.printStackTrace();
}
// 调用回调函数
callback.onComplete("Process Completed");
}
}
- 主程序:
public class Main {
public static void main(String[] args) {
// 创建回调对象
Callback myCallback = new MyCallback();
// 创建处理器并传入回调对象
Processor processor = new Processor(myCallback);
// 执行处理
processor.process();
// 主线程等待处理完成
System.out.println("Main thread continues...");
}
}
在这个示例中:
Callback
是一个接口,定义了回调方法onComplete
。MyCallback
是Callback
接口的实现,定义了回调的具体行为。Processor
类接受一个Callback
实现,并在处理完成后调用这个回调。- 在
Main
类中,我们创建了一个MyCallback
实例,并将其传递给Processor
对象,最后调用process
方法来模拟处理。
回调函数是在 Processor
的 process
方法中被同步调用的。Main
类中的输出会在回调执行完成之后才显示,展示了同步回调的特性。