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

Collection et Stream Java Discussion :

Un tableau est-il "sérializable" ?


Sujet :

Collection et Stream Java

  1. #1
    Membre chevronné Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Par défaut Un tableau est-il "sérializable" ?
    Bonjour,

    J'ai une question toute bête sur laquelle pourtant je ne trouve pas de réponses claires...

    Peut-on se prendre une erreur de sérialisation avec un tableau ?

    J'aurai tendance à répondre que cela dépend du type des objets contenus (s'ils sont eux-mêmes sérialisables ou non), mais je n'en suis pas convaincu...

    Merci de m'éclairer (sans trop me gronder s'il vous plaît )

  2. #2
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Ça dépend des éléments effectivement présents :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    import java.io.FileOutputStream;
    import java.io.ObjectOutputStream;
     
    class A {
     
    }
     
    public class TestSerTab {
     
        public static void main(String... args) throws Exception {
            A[] aTab = new A[5];
            //aTab[0] = new A(); //avec cette ligne, le writeObject(aTab) renvoie une exception
            String[] stringTab = new String[5];
            stringTab[0] = "abc";
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("test.dat"));
            oos.writeObject(aTab);
            oos.writeObject(stringTab);
            oos.close();
        }
     
    }

  3. #3
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Par contre moi je vois pas l'intérêt de serializer des composants... Ce sont les données qu'il faut serializer et pas le composant.

    Enfin ce que j'en dis...

  4. #4
    Membre chevronné Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Par défaut
    Ok merci Rom

  5. #5
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par natha
    Par contre moi je vois pas l'intérêt de serializer des composants... Ce sont les données qu'il faut serializer et pas le composant.

    Enfin ce que j'en dis...
    Qu'appelles-tu composant?

    Car tes données, elles sont stockées dans un objet, si tu sérialises ton objet tu as sérialisé tes données...

  6. #6
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Composant = Component (ou JComponent).

    Mais je viens de me rendre compte qu'il ne parlait pas d'une JTable donc j'suis un peu hors sujet. J'ai lu trop vite.

  7. #7
    Membre chevronné Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Par défaut
    lol

    Alors ok, en effet, sérialiser un composant graphique, c'est débile

  8. #8
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par Claythest
    Alors ok, en effet, sérialiser un composant graphique, c'est débile
    J'ai déjà vu des gens le faire.......

  9. #9
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    C'est pas forcément "débile", par exemple si tu veux rouvrir ton application dans l'état où tu l'avais laissé exactement...
    D'ailleurs, tous les composants Swing sont Serializable...

  10. #10
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par ®om
    C'est pas forcément "débile", par exemple si tu veux rouvrir ton application dans l'état où tu l'avais laissé exactement...
    D'ailleurs, tous les composants Swing sont Serializable...
    En l'occurence c'était pour transmettre des données à un serveur...

    Sinon pour conserver l'état d'une application c'est quand même mieux d'utiliser les java.util.Preferences à mon sens (plus de travail mais plus fiable).

  11. #11
    Membre chevronné Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Par défaut
    Je complète mon post même si je ne parle pas tout à fait de la même chose, juste pour dire que je suis arrivé à me poser cette question en essayant de renvoyer un tableau d'objet avec le serveur JBoss à une application cliente en Java 1.6... Et ça me génère une exception, comme si mon tableau n'était pas sérialisable...

    En fait, c'est un bug reconnu : http://www.jboss.com/index.html?modu...wtopic&t=98575

    Par contre, je n'ai pas tout compris ( ) : est-ce que quelqu'un sait comment je peux corriger mon JBoss afin que mon application fonctionne sous Java 1.6 ?


    (Si je sors de ma question d'origine, n'hésitez pas à déplacer le topic )

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

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