Test 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.