什么是Future <void>?

时间:2018-05-28 13:00:53

标签: java vert.x

我有以下代码段。

import io.vertx.core.Future;
public void start(Future<void> fut){

  /*
  some code
  */
  fut.complete()
}


为什么未来在这里使用?

1 个答案:

答案 0 :(得分:4)

Future<Void>是执行的未来结果,不返回任何值。

这通常是调用run的{​​{1}}方法的结果。

正常的无效调用看起来像(见Runnable):

r.run()

当这样的调用异步完成时,例如通过执行器服务或可完成的未来,它将变成未来:

Runnable r = () -> System.out.println("running");
r.run();

它只是执行的未来,不会返回任何结果。这个&#34;未来&#34;包含有关执行的信息,即使它没有&#34; return&#34;价值(例如Future<Void> future = CompletableService.runAsync(r); 会有什么)。

您可以获取有关异步执行的信息。它提供的一些信息示例:

Future<Object>

boolean finished = future.isDone(); //Check if the async execution has completed future.get(10L, TimeUnit.SECONDS); //Wait for completion with timeout future.cancel(true); //cancel the execution java.lang.Void的引用类型(没有实例化的占位符)。因此,您可以像查看void一样查看Future<Void>,只需记住您对Future<Object>没有返回任何值的了解。

您可以在此处详细了解这些类型: