Heute experimentierte ich mit dem "neuen" CompletableFuture
aus Java 8 und fand mich verwirrt, als ich keine runAsync(Callable)
Methode fand. Ich kann es selbst tun, wie unten gezeigt, aber warum fehlt diese (für mich sehr offensichtliche und nützliche Hilfsmethode)? Am I fehlt etwas?CompletableFuture von Callable?
public static <T> CompletableFuture<T> asFuture(Callable<? extends T> callable, Executor executor) {
CompletableFuture<T> future = new CompletableFuture<>();
executor.execute(() -> {
try {
future.complete(callable.call());
} catch (Throwable t) {
future.completeExceptionally(t);
}
});
return future;
}
Ja; 'CompleableFuture' wird leider nie im JDK verwendet. http://www.nurkiewicz.com/2013/05/java-8-completablefuture-in-action.html – SLaks
@SLaks - ja, die * Schnittstelle * ist scheußlich. Es ist wahrscheinlich eine gute Implementierung, die wir intern nutzen können. sehr bedauerlich, dass Java keine gute offizielle asynchrone Schnittstelle hat. – ZhongYu