La classe Optional en Java 8

Dans ce tutoriel, nous allons voir la classe Optional introduite dans Java 8. Le but de cette classe est de fournir une solution au niveau du type pour représenter des valeurs facultatives au lieu des références nulles.

Vous avez probablement rencontré l’exception « NullPointerException ». Cela peut planter votre code. Et il est très difficile de l’éviter sans utiliser trop de condition pour tester les valeurs nulles.
 
 
C’est pour cela Java 8 a introduit une nouvelle classe Optional dans le package java.util. Il peut aider à écrire un code sans utiliser trop de tests pour les nuls. En utilisant la classe Optional, nous pouvons spécifier des valeurs alternatives à renvoyer ou un code alternatif à exécuter. Cela rend le code plus lisible.
 

Exemple: Programme Java sans utiliser la classe Optional
public class Main
{   
    public static void main(String[] args) 
    {   
        String[] str = new String[5];   
      
        System.out.print(str[2].trim());   
    }   
}

 
Sortie:

Exception in thread "main" java.lang.NullPointerException
	at Main.main(Main.java:7)

Pour éviter cette exception, nous utilisons la classe Optional. Dans l’exemple suivant, nous utilisons la classe Optional. Ainsi, notre programme peut s’exécuter sans planter.
 
 

Exemple: Programme Java avec l’utilisation de la classe Optional
import java.util.Optional;   

public class Main
{   
    public static void main(String[] args) 
    {   
        String[] str = new String[5];    
      
        Optional<String> isNull = Optional.ofNullable(str[2]);  
      
        if (isNull.isPresent()) 
            System.out.print(str[2].trim()); 
        else  
            System.out.println("La chaîne est nulle");   
    }   
}

 
Sortie:

La chaîne est nulle

Notez que nous avons utilisé la méthode isPresent() pour vérifier s’il existe une valeur à l’intérieur de l’objet Optional. Une valeur n’est présente que si nous avons créé Optional avec une valeur non nulle.
QCM-Java

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *