用简易例子讲Java中的回调机制

首先说点题外话。为什么要写这篇文章,因为在看J.U.C包的FutureTask源码的时候,有一个done()方法,这是个抽象方法,用户实现它之后,FutureTask会在执行完后调用这个方法。这就是回调机制,回调的思想就是:

  • 类A调用类B的b方法

  • 类B的b方法执行完毕主动调用类A的callback()方法

给出思想过于抽象,所以我会举出一个简单的实例(虽然简单,但是能说明问题),并总结Java实现回调的步骤。

实例基于知乎上一个解释什么是回调机制的回答。

描述: 一个顾客入住了一个酒店,酒店提供叫醒服务,顾客由于第二天早晨有很重要的事情,所以使用了叫醒服务。让酒店工作人员在第二天早晨7:00叫醒顾客。

在这个例子中,顾客是A类,酒店是B类,顾客预订叫醒服务相当于A调用了B的b方法,酒店叫醒顾客相当于B调用了A的callback方法(被叫醒)。

下面给出代码:

1、首先是回调接口:

package callback;
//回调接口
public interface CallBack {

    public void beWakedUp();
}

2、接着是顾客类
顾客类实现回调接口

package callback;

publi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
业务回调接口在Java通常使用接口来定义,其作用是在异步处理完成后,将处理结果返回给程序。下面是一个简单的Java代码示例: ```java // 定义业务回调接口 public interface Callback { void onSuccess(String result); // 成功回调方法 void onFailure(Throwable throwable); // 失败回调方法 } // 异步处理方法 public void asyncMethod(Callback callback) { new Thread(() -> { try { // 模拟异步处理操作 Thread.sleep(1000); // 处理完成后调用回调方法 callback.onSuccess("处理结果"); } catch (Exception e) { callback.onFailure(e); } }).start(); } // 使用业务回调接口的示例 public static void main(String[] args) { Callback callback = new Callback() { @Override public void onSuccess(String result) { System.out.println("处理成功,结果为:" + result); } @Override public void onFailure(Throwable throwable) { System.out.println("处理失败,异常信息为:" + throwable.getMessage()); } }; asyncMethod(callback); // 调用异步处理方法 } ``` 在上面的示例,`Callback`接口定义了两个回调方法`onSuccess`和`onFailure`,分别用于处理异步处理成功和失败的情况。`asyncMethod`方法是一个异步处理的方法,它接收一个`Callback`对象作为参数,用于在处理完成后调用回调方法通知程序。在`main`方法,我们创建了一个`Callback`对象,并将其作为参数传递给`asyncMethod`方法,然后程序会立即返回,不会等待异步处理完成。当异步处理完成后,会调用回调方法通知程序处理结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值