IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Impossible de sérialiser des "Joueur" ajouté


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 76
    Par défaut Impossible de sérialiser des "Joueur" ajouté
    Bonjour,
    Je viens d'enfin réussir ma sérialisation en java sauf que maintenant j'ai un drôle de problème. Comme dit dans le titre je n'arrive pas à sérialisé (et donc dé-sérialisé) les nouveau joueur que je crée, pourtant ces nouveau "Joueur" sont dans la liste. Je vous montre pour que vous comprenez mieux...

    J'ai une classe "AffichagTableau" qui appelle la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        @FXML
        private void clicSauvegarde() {
            ListeJoueursSerialisable list = new ListeJoueursSerialisable();
            System.out.println("print list Tab des score");
            for(Joueur str:(listeJoueurs.getListJoueur())){
                System.out.println(str.getSurname());
            }
            manageur.sauvegarderJoueur(list);
        }
    De ma classe Manageur j'ai donc ma fonction sauvegarderJoueur coder comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public void sauvegarderJoueur(ListeJoueursSerialisable list) {
            System.out.println("print list manageur");
            for(Joueur str:(list.getListJoueur())){
                System.out.println(str.getSurname());
            }
            saveJoueur.save(list);
        }
    Et enfin j'ai ma classe sauvegarderJoueur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        public void save(ListeJoueursSerialisable listJoueurs) {
            try(FileOutputStream fos = new FileOutputStream("listeJoueur.txt")){
                System.out.println("print list sauvegarder");
                for(Joueur str:(listJoueurs.getListJoueur())){
                    System.out.println(str.getSurname());
                }
                ObjectOutputStream oss = new ObjectOutputStream(fos);
                oss.writeObject(listJoueurs);
            }
            catch (IOException e){
                e.printStackTrace();
            }
        }

    C'est différente fonction me font l'affichage suivant :
    print list Tab des score
    cloclo
    hamster18
    Alex
    NewJoueur //Mon nouveau joueur ajouter


    print list manageur
    cloclo
    hamster18
    Alex


    print list sauvegarder
    cloclo
    hamster18
    Alex
    Donc mon nouveau joueur et présent au début puis il "disparait" avez vous une idée de la cause de ce problème ?

    Merci d'avance pour vos réponses.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    Il est super bizarre ce code, parce que tu crées une nouvelle instance de ListeJoueursSerialisable et tu n'y mets jamais rien.

    On aurait pu s'attendre à ce que du coup l'instance soit vide, mais elle contient 3 joueurs.

    Du coup on peut en déduire qu'elle les récupère d'une manière ou d'une autre grâce à son constructeur, et ça, ce n'est pas bon.
    Quoi qu'il en soit, ce n'est pas comme ça qu'il faut faire, mais on ne peut pas deviner précisément ce que tu as fait. Il fallait montrer le code voyons. Drôle d'idée que de ne pas le faire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 486
    Billets dans le blog
    5
    Par défaut
    Suite à un sujet précédent, j'avait parler de classes de mapping, me semble-t-il.

    Donc à la place de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ListeJoueursSerialisable list = new ListeJoueursSerialisable();
    On devrait avoir un truc qui ressemble à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ListeJoueursSerialisable list = listeJoueurMapping.getFromVue(listeJoueurs);

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 76
    Par défaut
    Citation Envoyé par PhilippeGibault Voir le message
    Suite à un sujet précédent, j'avait parler de classes de mapping, me semble-t-il.

    Donc à la place de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ListeJoueursSerialisable list = new ListeJoueursSerialisable();
    On devrait avoir un truc qui ressemble à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ListeJoueursSerialisable list = listeJoueurMapping.getFromVue(listeJoueurs);
    Je n'est pas encore mir en place de classe mapping car cela me semble compliquer et que j'aimerais y aller "petit à petit" pour être sur de comprendre ce que je fait, à l'aide de votre précédente documentation vers une formaion que je trouve plus simple (dans un premier temps).

    Cordialement.

  5. #5
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 486
    Billets dans le blog
    5
    Par défaut
    Juste une remarque de code, ObjectOutputStream est un stream (il étend d'ailleurs OutputStream), il doit donc être fermé à la fin de l'usage.

    Ça tombe bien, il est AutoClosable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void save(ListeJoueursSerialisable listJoueurs) {
            try(FileOutputStream fos = new FileOutputStream("listeJoueur.txt"); ObjectOutputStream oss = new ObjectOutputStream(fos)){
                System.out.println("print list sauvegarder");
                for(Joueur str:(listJoueurs.getListJoueur())){
                    System.out.println(str.getSurname());
                }
                oss.writeObject(listJoueurs);
            }
            catch (IOException e){
                e.printStackTrace();
            }
        }

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 76
    Par défaut
    J'ai fini par résoudre mon problème en redéfinissant la méthode readObject et writeObject ... Merci pour votre aide =)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. QGIS : lenteur pour afficher les listes des vues dans "Ajouter une table PostGIS"
    Par fafa63 dans le forum SIG : Système d'information Géographique
    Réponses: 2
    Dernier message: 11/07/2014, 19h04
  2. Ajouter des quotes à un string
    Par OuiOuiOuiOuiOui dans le forum PL/SQL
    Réponses: 6
    Dernier message: 09/01/2013, 11h34
  3. supprimer une table qui a des quotes dans son nom
    Par kleenex dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 16h03
  4. Réponses: 5
    Dernier message: 30/05/2005, 16h58
  5. Placer des quote dans un champs
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 21/04/2005, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo