Acceder Attributs Classe

mx37 Messages postés 9 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 16 mars 2010 - 25 nov. 2009 à 18:43
mx37 Messages postés 9 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 16 mars 2010 - 25 nov. 2009 à 19:58
Bonjour à tous voici le problème auquel je suis confronté.

Lorsque je lance mon programme je me retrouve avec l'erreur :

Exception in thread "main" java.lang.NullPointerException
at entreprise.Main.Recherche_Client(Main.java:62)

Voici la ligne concernée :

if ((cli[i].Reference_Client).equals(numcli))

Et voici la classe Client :

public class Client {

public float Ca;
public String Reference_Client;

public Client (String z, float c)
{
this.Reference_Client=z;
this.Ca= c;
}
}

Et le sous-programme concernée :

public static Client[] Recherche_Client(String x,float y, Client cl[])
{
boolean connue =false;
int pos=0;
String numcli=x;
float montant=y;
Client cli[]=cl;
for (int i=0;i<10;i++)
{
if ((cli[i].Reference_Client).equals(numcli))
{
connue=true;
pos=i;
}
}
if(connue)
{
cli[pos].Ca=cli[pos].Ca+montant;
}
else
{
int j=0;
while((cli[j].Reference_Client.equals(null))==false)
{
j=j+1;
}
cli[j]=new Client(numcli,montant);

}
return cli;
}

Voila j'ai cherché en vain d'où venez le problème mais sans succes. Donc je fait appel a vous si par hasard vous pouviez m'aider.
Merci d'avance ;)

6 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
25 nov. 2009 à 18:54
Salut,

Il s'agit très certainement du paramètre passé qui n'est pas un tableau de 10 éléments... Mets un point d'arrêt dans ton code, et regarde la valeurs des variables, et tu verras tout de suite ton erreur.
______________________________________
DarK Sidious
0
mx37 Messages postés 9 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 16 mars 2010
25 nov. 2009 à 19:10
Merci pour la réponse,

Pas de problèmes de ce coté car mon tableau est bien à 10 éléments, et je l'ai initialisé avec que des valeurs nulles pour être sur.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
25 nov. 2009 à 19:13
Salut,

"je l'ai initialisé avec que des valeurs nulles pour être sur" : ben ca vient de cà alors... une NullPointerException se déclenche si tu essaye d'accèder à une propriété d'une référence à objet qui est nulle...
______________________________________
DarK Sidious
0
mx37 Messages postés 9 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 16 mars 2010
25 nov. 2009 à 19:18
Ah ok, je viens donc de testé en mettant un String quelconque mais je reste avec la même erreur...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
25 nov. 2009 à 19:31
Salut,

Le problème ne vient pas d'un String, mais du tableau de client : l'erreur t'indique qu'il n'est pas remplit complètement : il y a au moins une case de ton tableau dans la plage 0 à 10 qui n'est pas valué !

A la limite, rajoute le test juste avant :
for (int i=0;i<10;i++)
{
if (cli[i] != null) {
if ((cli[i].Reference_Client).equals(numcli))
{
connue=true;
pos=i;
}
}
} 

______________________________________
DarK Sidious
0
mx37 Messages postés 9 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 16 mars 2010
25 nov. 2009 à 19:58
Problème résolu il n'avait pas pris en compte le fait d'avoir rempli toute les cases avec des valeurs non nulles.

Merci pour le coup de main.
0
Rejoignez-nous