Classe Optional de Java 8
La classe Optional est un objet conteneur qui peut être null. Si la valeur existe, la méthode isPresent() renvoie true, et l'appel de la méthode get() renvoie l'objet.
Optional est un conteneur : il peut contenir une valeur de type T, ou simplement null. Optional fournit de nombreuses méthodes utiles, donc nous n'avons pas à effectuer explicitement des vérifications de valeur null.
L'introduction de la classe Optional résout efficacement l'exception de pointeur null.
Déclaration de classe
Ce qui suit est unejava.util.Optional<T>déclaration de classe :
Méthodes de classe
| Numéro | Metode & Deskripsi |
|---|---|
| 1 | static <T> Optional<T> empty()
Renvoie une instance Optional vide. |
| 2 | boolean equals(Object obj)
Détermine si un autre objet est égal à l'Optional. |
| 3 | Optional<T> filter(Predicate<? super <T> predicate)
Si la valeur existe et correspond au prédicat donné, renvoie un Optional décrivant cette valeur ; sinon, renvoie un Optional vide. |
| 4 | <U> Optional<U> flatMap(Function<? super T,Optional<U>> mapper)
Si une valeur existe, renvoie la valeur en fonction de la méthode de mappage contenue dans l'Optional ; sinon, renvoie un Optional vide. |
| 5 | T get()
Si la valeur est contenue dans cet Optional, renvoie la valeur ; sinon, lève une exception : NoSuchElementException |
| 6 | int hashCode()
Renvoie le code de hachage de la valeur présente, ou 0 si la valeur n'est pas présente. |
| 7 | void ifPresent(Consumer<? super T> consumer)
Si une valeur est présente, invoque le consumer avec la valeur ; sinon, ne fait rien. |
| 8 | boolean isPresent()
La méthode renvoie true si la valeur est présente, sinon renvoie false. |
| 9 | <U>Optional<U> map(Function<? super T,? extends U> mapper)
Si une valeur est présente, applique la fonction de mappage à celle-ci et récupère la valeur de retour. Si la valeur de retour n'est pas null, crée un Optional contenant la valeur de retour mappée comme valeur de retour de la méthode map ; sinon, renvoie un Optional vide. |
| 10 | static <T> Optional<T> of(T value)
Renvoie un Optional avec la valeur non-null spécifiée. |
| 11 | static <T> Optional<T> ofNullable(T value)
Si la valeur n'est pas nulle, renvoie un Optional décrivant la valeur spécifiée ; sinon, renvoie un Optional vide. |
| 12 | T orElse(T other)
Si la valeur est présente, renvoie la valeur ; sinon, renvoie other. |
| 13 | T orElseGet(Supplier<? extends T> other)
Si la valeur est présente, renvoie la valeur ; sinon, invoque other et renvoie le résultat de l'appel à other. |
| 14 | <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier)
Si la valeur est présente, renvoie la valeur contenue ; sinon, lève une exception fournie par le Supplier. |
| 15 | String toString()
Renvoie une chaîne non nulle de l'Optional, utilisée pour le débogage. |
Remarque :Ces méthodes sont héritées dejava.lang.Object, la classe.
Instance de Optional
Nous pouvons mieux comprendre l'utilisation de la classe Optional à travers les exemples suivants :
Fichier Java8Tester.java
L'exécution du script ci-dessus produit la sortie suivante :
$ javac Java8Tester.java $ java Java8Tester 第一个参数值存在: false 第二个参数值存在: true 10
Autres extensions
Nouveautés de Java 8