J'ai rencontré le problème suivant: J'ai une classe java avec un membre privé comme ceci:Java - NullPointerException en Array
private Arcs[] arcs;
Ce n'est pas initialisés dans le constructeur parce que je ne connais pas la longueur mon vecteur encore, mais il est initialisé dans la fonction de lecture, où je lis les informations d'un fichier. Dans cette fonction, je fais ce qui suit:
arcs = new Arcs[n]; //n is a number read from file
Ensuite, il y a un cycle while dans lequel je lis d'autres choses à partir du fichier et j'ai quelque chose comme:
while(condition){
...
arcs[i].add(blah); //i is a valid number, smaller than n, and the add function is also correct
...
}
Mais ici, j'ai une erreur disant NullPointerException et je ne comprends pas pourquoi. J'apprécierais que quelqu'un m'explique ce qui se passe.
Je ne peux pas faire cela, parce que je peux reffer aux mêmes arcs [i] dans plus d'une boucle et cela signifierait l'initialiser encore et encore et à la fin, je ne vais pas avoir tous les informations dont j'ai besoin. J'ai aussi essayé de le faire juste avant le moment mais toujours pas bon. – Sireny
@Sireny, vous pouvez faire 'si (arcs [i] == null) {arcs [i] = nouveaux Arcs(); } '. Il y a peut-être une façon plus simple de gérer cela. –
Ok, j'ai encore essayé, et maintenant ça marche ... J'ai utilisé un cycle pour initialiser tous les éléments et maintenant c'est bon. Je ne comprends pas pourquoi cela n'a pas fonctionné en premier lieu. De toute façon, merci pour l'aide de tout le monde :) – Sireny