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

Servlets/JSP Java Discussion :

[Serializable]Warning, quel incidence ?


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé

    Profil pro
    Laveur
    Inscrit en
    Avril 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Laveur

    Informations forums :
    Inscription : Avril 2004
    Messages : 142
    Par défaut [Serializable]Warning, quel incidence ?
    Bonjour,

    J'ai une classe telle que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    import java.io.Serializable;
    public class UtilisateurVO implements Serializable{
    ...
    }
    Seulement, j'ai un warning de la part d'Eclipse qui m'interpelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The serializable class UtilisateurVO does not declare a static final serialVersionUID field of type long
    Donc il me propose d'ajouter 2 solutions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static final long serialVersionUID = 1L;
    ou bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static final long serialVersionUID = 451921994909189867L;

    J'aimerai avoir quelques explications et l'utilité de ce warning ?

    Merci.


    Bon j'ai trouvé, merci . Mais je n'ai pas tres bien saisi l'incidence si j'ignore le problème :


    http://ydisanto.developpez.com/tutor...n/partie1/#LII

  2. #2
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 885
    Par défaut
    Hello

    Cela n'est pas très grave. Mais bon, comme on aime bien le code avec 0 erreurs et 0 warnings, ajoutes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private static final long serialVersionUID = 1L;
    Ca le fera

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  3. #3
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    L'attribut serialVersionUID d'une classe sérialisable permet au compilateur de savoir si une classe en mémoire a la même version qu'une autre.

    Je m'explique, si tu n'en définit pas un toi même, lors de la compilation, le compilateur en crée un. Imagine que tu as un EJB qui utilise la même classe A pour le client et pour le serveur. Si tu recompile le client, ta classe A de ton client aura un nouvel serialVersionUID, mais ton server n'ayant pas été recompilé, son serialVersionUID n'a pas changé.
    La JVM trouvera donc que les classe n'ont pas les même version et génèrera une erreur.

    L'attribution manuelle est effectivement préférable dans les cas où tu veut pouvoir gérer à la main les versions de tes classes. Mais à part dans des cas tel que décrit (utilisation d'EJB par exemple), sinon, ces numéro de version n'ont pas la nécessité réelle de changer. Bien sûr, l'utilisation de ce numéro peut avoir des application beaucoup plus complexe que celle décrite, si tu veut en savoir plus, cherche donc des explication sur la sérialisation.

    Ce que je te conseil, pour éviter les warning, c'est de définir toi même un serialVersionUID, celui ayant la valeur 1L n'est pas à conseiller.

    En espérant avoir éclaircit un peut la situation.

  4. #4
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Par défaut
    Ta également la réponse dans faq java...

  5. #5
    Membre confirmé

    Profil pro
    Laveur
    Inscrit en
    Avril 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Laveur

    Informations forums :
    Inscription : Avril 2004
    Messages : 142
    Par défaut
    Ok merci pour toute vos précisions, et surtout de l'exemple !

    C'est officiel, ce topice a été RESOLU ;-)

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

Discussions similaires

  1. Switch Procurve quel incidence aura un clear ARP ?
    Par llaffont dans le forum Administration
    Réponses: 3
    Dernier message: 07/03/2012, 09h14
  2. Réponses: 6
    Dernier message: 22/11/2007, 19h46
  3. [MySQL] quel type de champ pour un tableau serializé
    Par lodan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/11/2006, 14h37
  4. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37
  5. Quel désassembleur/assembleur pour un exe Windows ?
    Par Anonymous dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 17/04/2002, 10h59

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