NullPointerException

Signaler
Messages postés
1
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
6 juin 2003
-
Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Statut
Membre
Dernière intervention
13 avril 2020
-
Bonjour,

J'ai un petit programme à faire pour l'école et j'ai un problème. Lorsque je compile le code ci-joint, ca me dit : "Exception in thread "main" java.lang.NullPointerException at Repertoire.creerRepertoire (PapyRaoul.java:75) at Leblanc.main (PapyRaoul.java:112)"
J'aimerais vraiment savoir où se situe mon erreur. Et svp, soyez indulgent, je suis débutant en java.

PapyRaoul

/* CLASSE NOEUD */
class Noeud
{
protected Object element;;
protected Noeud suivant;
protected Noeud precedent;
}

/* CLASSE LISTE */
class Liste
{
protected Noeud debut;
protected Noeud fin;
public Liste()
{
this.debut = null;
this.fin = null;
}
// Méthode qui ajoute répertoire et fichier à la fin d'une liste chaînee
public void ajouterFin (Repertoire element)
{
Noeud nouveau = new Noeud();
Noeud courant = debut;

nouveau.element = element;
if (debut == null)
{
fin = nouveau;
debut = nouveau;
nouveau.suivant = null;
nouveau.precedent = null;
}
else
{
while (courant.suivant != null)
courant = courant.suivant;
courant.suivant = nouveau;
nouveau.suivant = null;
fin = nouveau;
nouveau.precedent = courant;
}
}

// Méthode d'affichage du contenu d'un répertoire
public void affiche ()
{
Noeud courant = new Noeud ();
courant = debut;
System.out.println (courant.element);
while (courant != null)
{
System.out.println (courant.element);
courant = courant.suivant;
}
}
}

/* CLASSE REPERTOIRE */
class Repertoire extends Liste
{
protected String Nom;
protected String Pere;
protected Liste listeRep;
protected Liste listeFic;

// Méthode pour la création de répertoire
public void creerRepertoire (Repertoire courant)
{
Repertoire nouveau = new Repertoire ();
System.out.print ("Entrez un nom pour votre nouveau repertoire : ");
nouveau.Nom = Clavier.lireString();
nouveau.Pere = courant.Pere;
nouveau.listeRep = new Liste();
nouveau.listeFic = new Liste();
courant.listeRep.ajouterFin (nouveau);
}

// Méthode pour la création de fichier
public void creerFichier (Repertoire courant)
{
Repertoire nouveau = new Repertoire ();
System.out.print ("Entrez un nom pour votre nouveau fichier : ");
nouveau.Nom = Clavier.lireString();
nouveau.Pere = courant.Pere;
nouveau.listeFic.ajouterFin (nouveau);
}

// Méthode d'affichage d'une ligne de commande
public void afficheLigneCommande (Repertoire courant)
{
System.out.print (courant.Nom + "> ");
}
}

// Programme principale
public class Leblanc
{
public static void main (String args[])
{
Repertoire ordinateur = new Repertoire ();
Repertoire courant = new Repertoire ();
String commande;

ordinateur.Nom = ("Home");
courant = ordinateur;
ordinateur.afficheLigneCommande (courant);
commande = Clavier.lireString ();

// CRÉATION DE RÉPERTOIRE
if (commande.equals ("mkdir")) 
{
ordinateur.creerRepertoire (courant);
ordinateur.listeRep.affiche();
} 

// CRÉATION DE FICHIER
else if (commande.equals ("mkfile"))
{
ordinateur.creerFichier (courant);
}

// AFFICHAGE
else if (commande.equals ("see"))
{
ordinateur.listeRep.affiche();
ordinateur.listeFic.affiche();
}

// OUVERTURE DE RÉPERTOIRE
else if (commande.equals ("open"))
{
System.out.println ("Entrez le nom du repertoire a ouvrir : ");
courant.Nom = Clavier.lireString();
//			courant.Nom = dirCourant;
}

// FERMETURE DE RÉPERTOIRE
else if (commande.equals ("close"))
{
//courant = ordinateur.pere;
}
}
}

1 réponse

Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Statut
Membre
Dernière intervention
13 avril 2020

> Bonjour,

ordinateur.Nom = ("Home");

tu as déclarer l'attribut Nom de la classe repertoire protected donc nom n'est pas visible de la classe leblanc.