Probleme de serialisation des vecteur

Résolu
devdev1 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
devdev1 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour , je suis débutant en java , et j'ai un tt petit problém , et aprés plusieurs recherches sur internet j'ai pas compris le problém ,
bref voila mon code ! J'ai comme class , la class Facture , et je veux que chaque facture contenant le prix total et le num de la facture , sois stocké dans le vecteur , lequel je vais serialiser dans un fichier , j'ai les 2 variables declaré de cette façons dans la class Facture :


        private static int N_factureC=0; 
  
 private double prixTotal;


Dans le constructeur j'increment le N_FactureC qui indique le num de la facture


et une class FactureTotal dans laquel je deserialise le vecteur et je l'affiche avec la methode affichageReg();

Le probléme c'est que au moment de l'affichage , les prix total de mes factures s'affiche d'"une façon correcte , alors que pour le num de la facture , j'ai toujours le dernier num facture , qui se repete avec le nombres des factures : par exemple , jai rentré 2 facture , je reçois comme resultat :

Facture   num 2                              total 20DH
Facture   num 2                              total 10DH 

//Dans le main /// 
Vector <Facture>v = new Vector <Facture>();
 Facture F;
 for(int i=0;i<10;i++){
 F=new Facture();
            
           F.afficherFactureC(date,C,P);
           F.afficherTotal(C);
           F.donnerArgent();
          v.addElement(F);
         
             FileOutputStream f= new FileOutputStream("FactureReglement");
             ObjectOutputStream o=new ObjectOutputStream(f);
             o.writeObject(v);
             o.close();


}

         FactureTotal T = new FactureTotal() ;
          T.affichageReg();


/Merci d'avance :)

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Pour qu'une Collection<E> soit sérialisable il faut que E soit sérialisable.

Est-ce que Facture implémente Serializable ?

Remarque : https://docs.oracle.com/javase/8/docs/api/java/util/Vector.html
Unlike the new collection implementations, Vector is synchronized. If a thread-safe implementation is not needed, it is recommended to use ArrayList in place of Vector.
0
devdev1 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Ouii bien sur , Facture est serializable , déjà c pour ca j'ai des resultats correcte pour le total de chaque facture
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Le numéro de facture qu'il te manque ça correspond à cet attribut là ?
private static int N_factureC=0; 

Un attribut static n'est jamais sérialisé car il appartient à la classe, pas à un objet en particulier.
0
devdev1 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
aaah bon :o !! oui c'est lui meme , dacc Merci Beaucoup J'apprécie ton Aide vraiment
0
devdev1 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Mercii
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Je pense que tu dois enlever le mot clé static de cet attribut, le numéro de facture est propre à chaque facture.

Exemple :

private static int compteurFactures = 0;
private final int numero = ++compteurFactures;
0