Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Maîtriser Java 8 Optional : Guide pratique pour un code sans null

Optional est un objet conteneur utilisé pour encapsuler des objets non-null. Il représente l'absence de valeur au lieu d'utiliser null. Cette classe fournit diverses méthodes utilitaires pour gérer les valeurs comme « présentes » ou « absentes » sans vérifications explicites de nullité. Introduite en Java 8, elle s'inspire de l'Optional de Guava.

Déclaration de la classe

Voici la déclaration de la classe java.util.Optional<T> :

public final class Optional<T> extends Object

Méthodes principales

N°Méthode & Description
1

static <T> Optional<T> empty()

Retourne une instance Optional vide.

2

boolean equals(Object obj)

Indique si un autre objet est « égal à » cet Optional.

3

Optional<T> filter(Predicate<? super T> predicate)

Si une valeur est présente et correspond au prédicat, retourne un Optional la décrivant, sinon un Optional vide.

4

<U> Optional<U> flatMap(Function<? super T, Optional<U>> mapper)

Si une valeur est présente, applique la fonction de mappage retournant un Optional, sinon retourne un Optional vide.

5

T get()

Retourne la valeur si présente, sinon lève NoSuchElementException.

6

int hashCode()

Retourne le code de hachage de la valeur présente, ou 0 si absente.

7

void ifPresent(Consumer<? super T> consumer)

Si une valeur est présente, invoque le consumer avec cette valeur, sinon ne fait rien.

8

boolean isPresent()

Retourne true si une valeur est présente, sinon false.

9

<U> Optional<U> map(Function<? super T, ? extends U> mapper)

Si une valeur est présente, applique la fonction de mappage et retourne un Optional du résultat si non-null.

10

static <T> Optional<T> of(T value)

Retourne un Optional avec la valeur non-null spécifiée.

11

static <T> Optional<T> ofNullable(T value)

Retourne un Optional décrivant la valeur si non-null, sinon un Optional vide.

12

T orElse(T other)

Retourne la valeur si présente, sinon retourne other.

13

T orElseGet(Supplier<? extends T> other)

Retourne la valeur si présente, sinon invoque other et retourne le résultat.

14

<X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier)

Retourne la valeur contenue si présente, sinon lève une exception créée par le fournisseur.

15

String toString()

Retourne une représentation textuelle non-vide pour le débogage.

Cette classe hérite des méthodes de java.lang.Object.

Exemple pratique

Créez le programme Java suivant dans un éditeur de votre choix (ex: C:\JAVA).

Java8Tester.java

import java.util.Optional;

public class Java8Tester {
    public static void main(String args[]) {
        Java8Tester java8Tester = new Java8Tester();
        Integer value1 = null;
        Integer value2 = new Integer(10);

        // Optional.ofNullable - autorise un paramètre null
        Optional<Integer> a = Optional.ofNullable(value1);
        // Optional.of - lève NullPointerException si le paramètre est null
        Optional<Integer> b = Optional.of(value2);

        System.out.println(java8Tester.sum(a, b));
    }

    public Integer sum(Optional<Integer> a, Optional<Integer> b) {
        // Vérifie la présence d'une valeur
        System.out.println("Premier paramètre présent : " + a.isPresent());
        System.out.println("Second paramètre présent : " + b.isPresent());

        // orElse - retourne la valeur ou une valeur par défaut
        Integer value1 = a.orElse(new Integer(0));
        // get - récupère la valeur (doit être présente)
        Integer value2 = b.get();

        return value1 + value2;
    }
}

Vérification du résultat

Compilez avec javac :

C:\JAVA>javac Java8Tester.java

Exécutez :

C:\JAVA>java Java8Tester

Sortie attendue :

Premier paramètre présent : false
Second paramètre présent : true
10

Java

  1. Comprendre le mot-clé final en Java : variables, méthodes et classes
  2. L'opérateur instanceof en Java : guide complet
  3. Comprendre les classes imbriquées statiques en Java : utilisation, différences et exemples
  4. Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
  5. Le pattern Singleton en Java expliqué : implémentation et utilisation sûre
  6. Maîtriser la réflexion Java : inspection des classes, méthodes et champs à l'exécution
  7. Maîtriser Java ObjectOutputStream : Sérialisation, méthodes et exemples pratiques
  8. Maîtriser les génériques Java : Construire du code réutilisable et type-safe
  9. Maîtriser les opérations sur les fichiers Java avec java.io – Création, lecture, écriture et suppression