NullPointerException
anayoub
Messages postés
1
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,je débute en Java, je suis tombé sur la fameuse java.lang.NullPointerException mais que dois faire pour régler ce problème?
Je sais certainement qu'un pointeur ne dois pointer justement sur rien, ou qu'il existe un pb d'indice, mais en relisant mon code je ne vois pas ce qui provoque ceci, si quelqu'un peut m'aider, ca m'aiderait énormément.
Voiçi les morceaux de codes d'où viendrait le pb :
Je sais certainement qu'un pointeur ne dois pointer justement sur rien, ou qu'il existe un pb d'indice, mais en relisant mon code je ne vois pas ce qui provoque ceci, si quelqu'un peut m'aider, ca m'aiderait énormément.
Voiçi les morceaux de codes d'où viendrait le pb :
public class appl {
public static void main(String[] args) throws ParseException {
IAppareil appareil=new Appareil();
appareil.enregistrer(new Contact(1, "C1", "06685231"));
appareil.enregistrer(new Contact(2, "C2", "06418596"));
appareil.enregistrer(new AppelEmi(1, new Date(), 66), "06685231");
appareil.enregistrer(new AppelEmi(2, new Date(), 45), "06685231");
appareil.enregistrer(new AppelEmi(3, new Date(), 123), "06418596");
appareil.enregistrer(new AppelRecu(4, new Date(), 68), "06685231");
System.out.println("-----------------------");
System.out.println("Consulter le cout total d'un contact :");
System.out.println(appareil.coutAppel(1));
}
}
public class Appareil implements IAppareil{
public List<Contact> contacts=new ArrayList<Contact>();
public List<Appel> appels=new ArrayList<Appel>();
@Override
public void enregistrer(Contact c) {
contacts.add(c);
}
@Override
public void enregistrer(Appel a, String NumTel) {
for(Contact c:contacts)
if(c.getNumeroTel().equals(NumTel))
appels.add(a);
}
@Override
public double coutAppel(int numeroContact) {
double total = 0;
for(Appel a:appels){
if(a.getContact().getNumeroContact()==numeroContact)
total=total+a.cout();
}
return total;
}
1 réponse
-
Salut,
java.lang.NullPointerException provient souvent d'un dépassement de capacité d'un tableau. En regardant dans le sens inverse les messages d'erreurs, tu peux en déduire d'où elle provient.
Pour formater ton code, tu peux utiliser les balises codes (à coter de gras, souligné...)
-
Bonjour,
"java.lang.NullPointerException provient souvent d'un dépassement de capacité d'un tableau"
Non, ça c'est ArrayOutOfBoundsException (comme son nom l'indique).
NullPointerException c'est généralement quand on faitobjet.methode(param)
avec objet qui vautnull
. Mais dans ce code là ça pourrait aussi être sur la bouclefor (objet : liste)
si liste vautnull
.
Mais comme tu l'as dis, lire la stack trace de l'exception (la première ligne suffira) permettra de savoir exactement où est le code qui plante pour identifier quelle variable vaut null.
-