Java.lang.NullPointerException
Résolu
Teevibi
-
teevibi -
teevibi -
Bonjour,
J'obtiens cette erreur lors de l'exécution de mon programme et je ne comprend pas pourquoi :
Exception in thread "main" java.lang.NullPointerException
at JeuCartes.creerJeu(JeuCartes.java:11)
at JeuCartesTest.main(JeuCartesTest.java:6)
Voici le code de la classe JeuCartes :
public class JeuCartes {
Carte [] JeuCartes;
public void creerJeu(int nombreCarte){
JeuCartes = new Carte[nombreCarte];
int couleur=1;
int valeurCarteInseree = 13;
for(int i=0;i<nombreCarte;i++){
JeuCartes[i].rang = valeurCarteInseree; // ERREUR
JeuCartes[i].couleur = couleur;
couleur++;
if(couleur==4){
couleur=1;
valeurCarteInseree--;
}
}
}
}
Voici le code de la classe JeuCartesTest :
public class JeuCartesTest {
public static void main(String[] args) {
JeuCartes j1 = new JeuCartes();
j1.creerJeu(32); // ERREUR
}
}
Et le code de la classe Carte :
public class Carte {
int rang,couleur;
static String [] tabCouleur = {"CARREAU","TREFLE","COEUR","PIQUE"};
static String [] tabRang = {"AS","DEUX","TROIS","QUATRE","CINQ","SIX","SEPT","HUIT","NEUF","DIX","VALET","DAME","ROI"};
}
Merci de votre aide
J'obtiens cette erreur lors de l'exécution de mon programme et je ne comprend pas pourquoi :
Exception in thread "main" java.lang.NullPointerException
at JeuCartes.creerJeu(JeuCartes.java:11)
at JeuCartesTest.main(JeuCartesTest.java:6)
Voici le code de la classe JeuCartes :
public class JeuCartes {
Carte [] JeuCartes;
public void creerJeu(int nombreCarte){
JeuCartes = new Carte[nombreCarte];
int couleur=1;
int valeurCarteInseree = 13;
for(int i=0;i<nombreCarte;i++){
JeuCartes[i].rang = valeurCarteInseree; // ERREUR
JeuCartes[i].couleur = couleur;
couleur++;
if(couleur==4){
couleur=1;
valeurCarteInseree--;
}
}
}
}
Voici le code de la classe JeuCartesTest :
public class JeuCartesTest {
public static void main(String[] args) {
JeuCartes j1 = new JeuCartes();
j1.creerJeu(32); // ERREUR
}
}
Et le code de la classe Carte :
public class Carte {
int rang,couleur;
static String [] tabCouleur = {"CARREAU","TREFLE","COEUR","PIQUE"};
static String [] tabRang = {"AS","DEUX","TROIS","QUATRE","CINQ","SIX","SEPT","HUIT","NEUF","DIX","VALET","DAME","ROI"};
}
Merci de votre aide
3 réponses
Bonjour,
le problème est que avec cette ligne :
JeuCartes = new Carte[nombreCarte];
tu instancie ton tableau de Carte mais tu ne crée pas une instance pour chaque carte de ton tableau....
Tu doit donc faire :
for(int i=0;i<nombreCarte;i++){
JeuCartes[i] = new Carte();
JeuCartes[i].rang = valeurCarteInseree; // ERREUR
JeuCartes[i].couleur = couleur;
le problème est que avec cette ligne :
JeuCartes = new Carte[nombreCarte];
tu instancie ton tableau de Carte mais tu ne crée pas une instance pour chaque carte de ton tableau....
Tu doit donc faire :
for(int i=0;i<nombreCarte;i++){
JeuCartes[i] = new Carte();
JeuCartes[i].rang = valeurCarteInseree; // ERREUR
JeuCartes[i].couleur = couleur;