SerialVersionUID
Résolu
jcodeunpeu
Messages postés
365
Date d'inscription
Statut
Membre
Dernière intervention
-
grobs -
grobs -
Bonjour,
qui saurait me dire à quoi correspond l'info-bulle affichant le message :
qui saurait me dire à quoi correspond l'info-bulle affichant le message :
A voir également:
- The serializable class does not declare a static final serialversionuid field of type long
- Pc long a demarrer - Guide
- Clear type - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
- Your browser sent a request that this server could not understand. size of a request header field exceeds server limit. - Forum Réseaux sociaux
- Do not turn off target traduction - Forum Samsung
info-bulle :
The Serializable class 'lamienne' does not declare a static serialVersionUID field of type long "
"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...
"
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