Gérer une bibliothèque en java

Marwawiss Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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   Statut Membre Dernière intervention  
 
mais l'erreur c'est il n'accepte pas cette Egalité :
listdoc[i].getNum_id()>m
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Remarque : il fallait bien sûr lire :

listdoc = new Document[nbr_document];
0