Maison >Java >javaDidacticiel >Pourquoi est-ce que j'obtiens une exception NullPointerException lors de la création et de l'utilisation d'un tableau d'objets en Java ?

Pourquoi est-ce que j'obtiens une exception NullPointerException lors de la création et de l'utilisation d'un tableau d'objets en Java ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-05 22:07:40700parcourir

Why Do I Get a NullPointerException When Creating and Using an Object Array in Java?

NullPointerException lors de la création d'un tableau d'objets : résoudre le problème

Lorsque vous essayez de travailler avec un tableau d'objets, vous pouvez rencontrer une NullPointerException. Cette exception se produit lorsque vous essayez d'accéder à un élément du tableau qui n'a pas encore été initialisé. Pour comprendre le problème, analysons le code fourni :

public class ResultList {
    public String name;
    public Object value;
}

public class Test {
    public static void main(String[] args){
        ResultList[] boll = new ResultList[5];
        boll[0].name = "iiii";
    }
}

Dans ce code, vous définissez une classe ResultList contenant deux champs : nom et valeur. Vous créez ensuite un tableau appelé boll avec cinq éléments (null par défaut). Lorsque vous essayez de définir une valeur pour boll[0].name, vous obtenez une NullPointerException car boll[0] est nul.

Pour résoudre ce problème, vous devez initialiser les éléments du tableau boll avant d'accéder eux. Vous pouvez y parvenir en instanciant un nouvel objet ResultList et en l'attribuant à chaque élément :

public static void main(String[] args){
    ResultList[] boll = new ResultList[5];
    for (int i = 0; i < 5; i++) {
        boll[i] = new ResultList();
    }
    boll[0].name = "iiii";
}

En initialisant les éléments du tableau boll, vous vous assurez qu'ils ont des références valides, en évitant l'exception NullPointerException. N'oubliez pas que lorsque vous travaillez avec des tableaux d'objets, il est essentiel d'initialiser explicitement leurs éléments avant de les utiliser.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn