English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java 8 a introduit la classe CompletableFuture<T>, qui pourrait être une version clairement définie de java.util.concurrent.Future<T> (en définissant sa valeur et son état), ou pourrait être utilisée comme java.util.concurrent.CompleteStage . Supporte les fonctions et les actions déclenchées par la fin du futur. Java 9 a introduit quelquesCompletableFuture des améliorations :
Java 9 des améliorations pour CompletableFuture Des améliorations ont été apportées :
supporte les délais et les timeouts
améliore le soutien à la sous-classe
Nouvelle méthode de fabrication
public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)
dans timeout(l'unité est java.util.concurrent.Timeunits units dans, par exemple MILLISECONDS )pour terminer ce CompletableFutrue avec la valeur donnée. Ce CompletableFutrue est retourné.
public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)
Si le CompletableFutrue n'est pas terminé dans le délai donné, il est terminé avec java.util.concurrent.TimeoutException et ce CompletableFutrue est retourné.
a apporté de nombreuses améliorations pour CompletableFuture peut être hérité plus simplement. Par exemple, vous pourriez peut-être vouloir redéfinir la méthode public Executor defaultExecutor() pour remplacer la méthode par défaut executor。
Une autre nouvelle méthode qui rend la sous-classe plus facile est :
public <U> CompletableFuture<U> newIncompleteFuture()
Java 8La méthode de fabrication <U> CompletableFuture<U> completedFuture(U value) a été introduite pour retourner un CompletableFuture déjà terminé avec la valeur donnée. Java 9supplements this method with a new <U> CompletableFuture<U> failedFuture(Throwable ex) to return a CompletableFuture that completes with the given exception.
In addition to this, Java 9 It introduces the following pair of stages-oriented factory methods, returning completed or exceptionally completed completion stages:
<U> CompletionStage<U> completedStage(U value): Returns a new CompletionStage that completes with the specified value and only supports the interfaces within CompletionStage
<U> CompletionStage<U> failedStage(Throwable ex): Returns a new CompletionStage that completes with the specified exceptionCompletionStage , and only supports CompletionStage interfaces.