SerialVersionUID
Résolu/Fermé
jcodeunpeu
Messages postés
365
Date d'inscription
mercredi 9 novembre 2005
Statut
Membre
Dernière intervention
2 décembre 2006
-
20 nov. 2005 à 13:57
grobs - 2 janv. 2010 à 13:36
grobs - 2 janv. 2010 à 13:36
A voir également:
- The serializable class does not declare a static final serialversionuid field of type long
- Pc long a demarrer - Guide
- The legend of zelda: a link to the past - Accueil - Guide jeu vidéo
- Faiblesse type spectre ✓ - Forum Jeux vidéo
- Your browser sent a request that this server could not understand. size of a request header field exceeds server limit. ✓ - Forum Réseaux sociaux
- Carte sanctuaire zelda breath of the wild - Forum Nintendo Switch
3 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
20 nov. 2005 à 14:28
20 nov. 2005 à 14:28
Salut,
qui saurait me dire à quoi correspond l'info-bulle affichant le message :
nobody
qui saurait me dire à quoi correspond l'info-bulle affichant le message :
nobody
20 nov. 2005 à 15:43
info-bulle :
The Serializable class 'lamienne' does not declare a static serialVersionUID field of type long "
14 juin 2007 à 12:20
"Ce warning signale qu'une classe qui implémente l'interface java.io.Serilizable n'a pas définit de serialVersionUID. En effet, le serialVersionUID permet d'affecter un numéro de version à la classe. Ce numéro doit normalement être changé lorsqu'un champs non-transiant est ajouté ou supprimé de la classe. Théoriquement, c'est le développeur qui doit créer ce champs. Toutefois, si ce champs est absent, le compilateur générera un numéro automatique.
Le champs serialVersionUID est utilisé lors de la désérialization afin de s'assurer que les versions des classes Java soient concordantes. Si ce n'est pas le cas, une InvalidClassException sera levée.
Or il se trouve que le calcul des serialVersionUID par défaut est extrêmement sensible aux modifications apportées au code source et peut même varier selon les compilateurs. Ce qui a pour inconvénient de provoquer des InvalidClassExceptions inattendus lors de la désérialisation...
Il est ainsi fortement conseillé de gérer le serialVersionUID de toutes classes sérializable, et bien sûr de modifier cette valeur lors d'un changement sur les champs de la classe. Ce warning signalera ainsi toutes classes Serializable sans définition du serialVersionUID explicite :
Main.java:5: warning: [serial] serializable class Main has no definition of serialVersionUID
Pour définir le serialVersionUID, il faut utiliser le code suivant (où 42L est le numéro de la version qui devra être changé à chaque modification sur les champs. La valeur n'a pas d'importance du moment qu'elle change lors d'un changement sur les champs à sérializer) :
private static final long serialVersionUID = 42L;
Donc il te faut définir un serialVersionUID pour faire disparaître le warning...
Toutefois ceci n'est vraiment utile que si tu vas sérializer ta classe...
"
28 avril 2008 à 09:45
merci pour tes explications, j'ai ce même message de warning, "The serializable class AddDocumentForm does not declare a static final serialVersionUID field of type long", j'ai pas bien compri tes explications, es ce que il s'agit d'une configuration ou bien de versions de JKD, or que autre personne travaillant avec moi er ayant la même version du code source n'as pas ces warnings, pourtant j'utilise JDK1.6.0
merci beacoups