如何完成 CompletableFuture<Void>?
Posted
技术标签:
【中文标题】如何完成 CompletableFuture<Void>?【英文标题】:How to complete a CompletableFuture<Void>? 【发布时间】:2018-06-02 14:35:29 【问题描述】:我想要一个仅表示完成的 CompletableFuture(例如,我没有返回值)。
我可以将 CompletableFuture 实例化为:
CompletableFuture<Void> future = new CompletableFuture<> ();
但是我应该在完整的方法中输入什么?比如我做不到
future.complete(new Void());
【问题讨论】:
【参考方案1】:您已经注意到,您不能像这样实例化Void
对象。
既然你不关心未来的价值,你可以用null
来完成它:
future.complete(null);
【讨论】:
谢谢,这行得通。但这是说根本没有办法实例化 Void 吗?如果你调用 future.get() 会发生什么?在这种情况下,我会得到一个 null 而不是我假设的 Void? @Xinchao 是的,你会得到一个null
。并引用Void
's javadoc:“Void 类是一个不可实例化的占位符类,用于保存对代表 Java 关键字 void 的 Class 对象的引用。”以上是关于如何完成 CompletableFuture<Void>?的主要内容,如果未能解决你的问题,请参考以下文章
CompletableFuture 的完成处理程序在哪个线程中执行?
创建已经完成的 CompletableFuture<Void> 的正确方法是啥