Gérer une bibliothèque en java

Fermé
Marwawiss Messages postés 10 Date d'inscription lundi 30 avril 2012 Statut Membre Dernière intervention 1 mai 2012 - 30 avril 2012 à 22:49
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 1 mai 2012 à 12:23
Bonjour,
j'ai un Mini projet en Java et je suis débutant ,
j'ai écrit 2 classe une classe Document(contient les caractéristique de document :titre,nombres de pages, numéro d'identification,et nom de l'auteur) et classe Bibliothèque(contient un tableau des Document )
le problème c'est dans la classe Bibliothèque il faut que j'écrit une méthode d'ajout de document avec respect l'ordre du numéro d'identification .
j'ai écrit ca mais ca marche pas il m'écrit"Exception in thread "main" java.lang.NullPointerException"


public void ajout_doc(Document d)
{ int idd,k,j,i=0; Document h=null;
int m=d.getNum_id();
for (i=0;i<nbr_document;i++)
{
if ( listdoc[i].getNum_id()>m )
h=listdoc[i]; idd=i; listdoc[i]=d;

for (k=nbr_document+1;k>idd+1;k--)
{
for (j=nbr_document;j>idd+2;i--)
{
listdoc[i]=listdoc[j] ;

}
}
listdoc[idd+1]=h;
}
}



A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
30 avril 2012 à 23:28
Il faut absolument que tu apprennes à mettre une instruction par ligne !
Lorsque tu fais ceci par exemple :

if ( listdoc[i].getNum_id()>m )
h=listdoc[i]; idd=i; listdoc[i]=d;

En réalité, Java fais ceci :

if (listdoc[i].getNum_id()>m)
    h=listdoc[i];

idd=i;
listdoc[i]=d;

Alors que ce que tu veux est certainement ceci :

if ( listdoc[i].getNum_id()>m)
{
    h=listdoc[i];
    idd=i;
    listdoc[i]=d;
}

Cependant je ne vois pas l'erreur NullPointerException dans ton code, ce qui signifie que c'est l'une de tes variables globales qui n'est pas initialisé ! Il faudrait donc savoir sur quelle ligne l'exception s'est déclenchée pour connaître le coupable...
0
Marwawiss Messages postés 10 Date d'inscription lundi 30 avril 2012 Statut Membre Dernière intervention 1 mai 2012
1 mai 2012 à 00:06
mais l'erreur c'est il n'accepte pas cette Egalité :
listdoc[i].getNum_id()>m
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
1 mai 2012 à 00:42
Si l'erreur est sur cette ligne c'est donc que listdoc qui vaut null, or il faut qu'il soit initialisé avant que tu n'appelles la méthode ajoutDoc, et donc avoir quelque part avant :

ajoutDoc = new Document[nbr_document];

Remarque : ce n'est pas une égalité, mais une inégalité !
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
1 mai 2012 à 12:23
Remarque : il fallait bien sûr lire :

listdoc = new Document[nbr_document];
0