Machine-translated by Google. Questions are authored in English.
Top

Discussion

Which of these correctly runs work asynchronously and returns a handle to the eventual result?

  • A.CompletableFuture<String> f = new CompletableFuture<String>(() -> load());
  • B.CompletableFuture<String> f = CompletableFuture.runAsync(() -> load());
  • C.Future<String> f = CompletableFuture.async(() -> load());
  • D.CompletableFuture<String> f = CompletableFuture.supplyAsync(() -> load());

Answer: D

Correct answer: CompletableFuture<String> f = CompletableFuture.supplyAsync(() -> load());

supplyAsync takes a Supplier and returns a future of its result, which is what is wanted when the work produces a value. runAsync takes a Runnable and gives CompletableFuture<Void>, so it cannot carry the loaded string.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.