You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Guava ListenableFuture代码有效性与回调执行逻辑的问询

代码有效性与回调执行分析

一、代码存在语法错误

这段代码无法正常编译,核心问题有两处:

  • FutureCallback的匿名内部类中,onSuccess和onFailure都是void类型方法,不能包含return future;语句,这行属于非法返回语句,会触发编译报错。
  • Futures.addCallback调用末尾缺少闭合的括号和分号,导致语法不完整。

修正后的合法代码示例:

//public void doSomething(x,x){}
// doSomething(a,b)...

ListenableFuture<Void> future = Futures.immediateFuture(null);

Futures.addCallback(future, new FutureCallback<Void>(){
    public void onSuccess(@Nullable Void aVoid){
        //do something 
    }
    public void onFailure(@Nonnull Throwable throwable){
       //do something 
    }
});

二、回调执行逻辑

使用Futures.immediateFuture(null)创建的ListenableFuture是已成功完成的实例,传入的null就是它的成功结果,因此:

  • 回调的onSuccess方法一定会被执行,参数aVoid即为传入的null。
  • onFailure方法永远不会被触发,因为这个Future从创建起就处于成功完成状态,不存在异常抛出的场景。

内容的提问来源于stack exchange,提问作者Ray Knight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:15:38