Tester avec des tableaux null
Dans cette étape finale, nous allons explorer ce qui se passe lorsque vous essayez d'accéder à la propriété length d'un tableau qui n'a pas été initialisé, ou qui est null. Comprendre comment gérer les valeurs null est crucial pour éviter les erreurs dans vos programmes.
En Java, une variable qui est déclarée mais n'est pas affectée à une référence d'objet a une valeur par défaut de null. Si vous essayez d'accéder à une propriété ou à une méthode d'un objet null, Java lancera une NullPointerException. C'est une erreur d'exécution courante que vous rencontrerez en programmation Java.
Modifions notre programme pour voir ce qui se passe lorsque nous essayons d'accéder à la longueur (length) d'un tableau null et comment le gérer de manière appropriée.
-
Ouvrez le fichier HelloJava.java dans l'éditeur WebIDE.
-
Remplacez le code actuel par le suivant :
public class HelloJava {
public static void main(String[] args) {
int[] numbers = null; // Declare an array but set it to null
// Attempt to access the length property (this will cause an error)
// int arraySize = numbers.length; // Commenting this out to prevent error
// How to safely check for null before accessing length
if (numbers != null) {
int arraySize = numbers.length;
System.out.println("The size of the array is: " + arraySize);
} else {
System.out.println("The array is null. Cannot get its length.");
}
}
}
Voici une explication des modifications :
int[] numbers = null; : Nous déclarons le tableau numbers mais nous lui attribuons explicitement la valeur null. Cela signifie que la variable numbers ne fait actuellement référence à aucun objet tableau en mémoire.
// int arraySize = numbers.length; : Nous avons commenté la ligne qui tente d'accéder directement à numbers.length. Si nous exécutions ce code sans la vérification if, cela entraînerait une NullPointerException.
if (numbers != null) : C'est la partie cruciale pour gérer les valeurs null. Nous utilisons une instruction if pour vérifier si la variable numbers n'est pas null. L'opérateur != signifie "différent de".
int arraySize = numbers.length; System.out.println("The size of the array is: " + arraySize); : Ce bloc de code n'est exécuté que si numbers n'est pas null. À l'intérieur de ce bloc, il est sûr d'accéder à numbers.length.
else : Ce bloc est exécuté si la condition de l'instruction if est fausse, c'est-à-dire si numbers est null.
System.out.println("The array is null. Cannot get its length."); : Ce message est affiché lorsque le tableau est null, informant l'utilisateur que la longueur ne peut pas être déterminée.
-
Enregistrez le fichier (Ctrl+S ou Cmd+S).
-
Compilez le programme modifié dans le terminal :
javac HelloJava.java
-
Exécutez le programme compilé :
java HelloJava
Vous devriez voir la sortie suivante :
The array is null. Cannot get its length.
Cette sortie démontre que notre programme a correctement identifié que le tableau était null et a géré la situation sans lancer de NullPointerException.
Gérer les valeurs null est une compétence très importante en programmation Java. Vérifiez toujours si une référence d'objet est null avant d'essayer d'accéder à ses propriétés ou méthodes pour éviter les erreurs d'exécution.