定义:
所谓回调方法,就是调用方把一个需要被回调的方法作为参数,传递给要调用的方法,被调用的方法执行完成后,通过该参数返回来调用此方法,作为参数传递的该方法就称作回调方法。实际上是一种双向的调用方式
实际场景
在项目开发中,需要各个模块或者对象之间的消息传递,A模块某些方法,需要在B模块满足某些条件下来主动通知并调用A模块的方法,这就是典型的回调应用场景。如果是比较耗时的调用,采用该方法可以避免同步阻塞。
上代码:
public class Request {
public static void main(String[] args) {
new Thread(() -> new Response().handle("handle something", data -> System.out.println("回调方法,收到数据:" + data))).start();
}
}
class Response {
public void handle(String msg, CallBack callBack) {
System.out.println("接收到调用方入参msg=:" + msg);
try {
//模拟业务处理耗时3s
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
callBack.onResponse("请求完成,响应success");
}
}
interface CallBack {
void onResponse(String data);
}