Java回调

回调示例代码

  • 被调用方 Reponse::handle
public class Reponse {
    public void handle(String msg, CallBack callBack) {
        System.out.println("接收到的msg = " + msg);
        try {
            // sleep 3 秒,模拟满足某些条件
            TimeUnit.SECONDS.sleep(3);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        // 调用回调方法
        callBack.onResponse("请求完成,响应success");
    }
}
  • 回调接口(函数式接口)
public interface CallBack {

    void onResponse(String data);
}

  • 请求方
public class Request {
    public static void main(String[] args) {
        // 起一个线程,调用Response的handle方法
        new Thread(() ->
                new Reponse().handle("handle something",
                        data -> System.out.println("回调方法,收到数据 :" + data))
        ).start();
        System.out.println("异步回调,先做其他事情");
    }

}
  • 打印结果
异步回调,先做其他事情
接收到的msg = handle something
回调方法,收到数据 :请求完成,响应success

你可能感兴趣的:(Java回调)