【问题标题】:How to complete a CompletableFuture<Void>?如何完成 CompletableFuture<Void>?
【发布时间】:2025-12-24 05:10:07
【问题描述】:

我想要一个仅表示完成的 CompletableFuture(例如,我没有返回值)。

我可以将 CompletableFuture 实例化为:

CompletableFuture<Void> future = new CompletableFuture<> ();

但是我应该在完整的方法中输入什么?比如我做不到

future.complete(new Void());

【问题讨论】:

    标签: java completable-future


    【解决方案1】:

    您已经注意到,您不能像这样实例化Void 对象。 既然你不关心未来的价值,你可以用null来完成它:

    future.complete(null);
    

    【讨论】:

    • 谢谢,这行得通。但这是说根本没有办法实例化 Void 吗?如果你调用 future.get() 会发生什么?在这种情况下,我会得到一个 null 而不是我假设的 Void?
    • @Xinchao 是的,你会得到一个null。并引用Void's javadoc:“Void 类是一个不可实例化的占位符类,用于保存对代表 Java 关键字 void 的 Class 对象的引用。”
    最近更新 更多