Probleme de serialisation des vecteur

Résolu/Fermé
devdev1 Messages postés 8 Date d'inscription mardi 15 décembre 2015 Statut Membre Dernière intervention 11 avril 2016 - Modifié par KX le 16/12/2015 à 07:42
devdev1 Messages postés 8 Date d'inscription mardi 15 décembre 2015 Statut Membre Dernière intervention 11 avril 2016 - 16 déc. 2015 à 23:35
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
16 déc. 2015 à 07:48
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 mardi 15 décembre 2015 Statut Membre Dernière intervention 11 avril 2016
16 déc. 2015 à 14:40
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
16 déc. 2015 à 19:05
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 mardi 15 décembre 2015 Statut Membre Dernière intervention 11 avril 2016
16 déc. 2015 à 22:00
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 mardi 15 décembre 2015 Statut Membre Dernière intervention 11 avril 2016
Modifié par devdev1 le 16/12/2015 à 22:51
Mercii
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
16 déc. 2015 à 22:41
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