Java 9 : Améliorations de l'API CompletableFuture — Délais, timeouts, sous-classage
CompletableFuture (Java 8) représente un futur complétable explicitement. Java 9 l'améliore sur trois axes :
1. Support des délais et timeouts
public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)
public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)
completeOnTimeout: complète avec la valeur donnée si non complété avant le timeout.orTimeout: complète exceptionnellement avecTimeoutExceptionsi non complété avant le timeout.
2. Meilleur support du sous-classage
public Executor defaultExecutor()
public <U> CompletableFuture<U> newIncompleteFuture()
defaultExecutor(): retourne l'exécuteur par défaut pour les méthodes async sans exécuteur explicite. Surchargeable pour fournir un thread minimum dédié.newIncompleteFuture(): crée une nouvelle instance incomplète du type de retour. Les sous-classes doivent le surcharger pour retourner leur propre type.
3. Nouvelles méthodes factory statiques
public static <U> CompletableFuture<U> completedFuture(U value)
public static <U> CompletionStage<U> completedStage(U value)
public static <U> CompletionStage<U> failedStage(Throwable ex)
completedFuture:CompletableFuturedéjà complétée avec la valeur.completedStage:CompletionStagedéjà complétée (interface seulement).failedStage:CompletionStagedéjà complétée exceptionnellement avec l'exception.
Ces ajouts rendent CompletableFuture plus robuste pour la programmation asynchrone avec timeouts, extensible par héritage, et plus pratique pour créer des futures pré-complétés.
Java
- Six innovations clés boostant les performances du matériel cryptographique
- Créer une API robuste de température et capteurs sur Raspberry Pi avec le module GY‑91
- Blueprint pour améliorer la fiabilité équipement : plan structuré 5 étapes
- Allegheny Power investit 156 M$ dans la fiabilité du réseau en Virginie-Occidentale
- Étendez les fonctionnalités de votre CMMS avec notre API robuste
- Java 9 (JDK 9) — Principales fonctionnalités et avantages
- Java 9 API Process : Améliorations majeures et nouvelles fonctionnalités
- Java 9 Stream API : takeWhile, dropWhile, iterate, ofNullable
- Java 9 : Nouvelles méthodes pour la classe Optional