English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java 8 Die Klasse CompletableFuture<T> wurde eingeführt, möglicherweise eine klare Version von java.util.concurrent.Future<T> (mit festgelegtem Wert und Status), möglicherweise auch als java.util.concurrent.CompleteStage verwendet. Unterstützung für Funktionen und Aktionen, die bei der Fertigstellung des Futures ausgelöst werden. Java 9 Einige Neuerungen wurden eingeführt:CompletableFuture sind:
Java 9 Verbesserungen für CompletableFuture hat verbessert:
unterstützt Verzögerungen und Timeouts
hat den Support für die Subklasifizierung verbessert
Neue Fabrikmethode
public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)
in timeout(Einheiten in java.util.concurrent.Timeunits units wird, wie z.B. MILLISECONDS), vor dem gegebenen value abgeschlossen, und diese CompletableFutrue zurückgegeben.
public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)
Wenn die CompletableFutrue nicht innerhalb der gegebenen timeout abgeschlossen wird, wird diese mit java.util.concurrent.TimeoutException abgeschlossen und diese CompletableFutrue zurückgegeben.
hat viele Verbesserungen vorgenommen, um CompletableFuture kann einfacher vererbt werden. Zum Beispiel möchtest du vielleicht die neue Methode public Executor defaultExecutor() überschreiben, um den Standardwert zu ersetzen executor.
Eine weitere neue Methode, die die Subklasifizierung einfacher macht, ist:
public <U> CompletableFuture<U> newIncompleteFuture()
Java 8Introduziert wurde die Fabrikmethode <U>CompletableFuture<U> completedFuture(U value), um eine bereits mit dem gegebenen value abgeschlossene CompletableFuture zurückzugeben. Java 9dieser Methode durch eine neue <U> CompletableFuture<U> failedFuture(Throwable ex) erweitert, die eine CompletableFuture zurückgeben kann, die mit der gegebenen Ausnahme abgeschlossen wird.
Darüber hinaus hat Java 9 Es wurden die folgenden Paar stage eingeführt-orientierte Fabrikmethoden, die abgeschlossene oder fehlerbeendete completion stages zurückgeben:
<U> CompletionStage<U> completedStage(U value): Gibt einen neuen CompletionStage zurück, der mit dem angegebenen value abgeschlossen wird, und unterstützt nur Schnittstellen von CompletionStage.
<U> CompletionStage<U> failedStage(Throwable ex): Gibt einen neuen CompletionStage zurück, der mit der angegebenen Ausnahme abgeschlossen wird.CompletionStage und unterstützt nur CompletionStage dargestellten Schnittstellen.