10. april 2005 - 21:25Der er
13 kommentarer og 1 løsning
warning: serializable class does not declare serialVersionUID
Jeg har lige downloaded en ny version af Eclipse(3.1), som understøtter java 1.5. Og det er jo godt :) Men jeg får nogle warnings, som jeg ikke helt kan greje. Helt præcist 14 warnings af typen:
The serializable class "classname" does not declare a static final serialVersionUID field of type long.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Den fortæller bare at din klasse enten implementerer Serializable eller extender en klasse som implementerer Serializable og i den forbindelse mangler din klasse et serialVersionUID
Jeg plejer at bruge denne
private static final long serialVersionUID = 22302004091201L;
Lidt forklaring til nummeret: 2230 = kl. 22:30 2004 = årstal 09 = måned 12 = dato 01 = version
Så kan jeg altid aflæse en hulens masse ting udfra serialVersionUID
Forresten lige et spørgsmål, Carsten, til den måde du laver dit UID på. Jeg går ud fra, at du laver den dynamisk, men giver det ikke problemer med at 2 forskellige versioner af et program, som ikke indeholder forskelle i den klasse som indeholder UID'et. De vil jo ikke være kompatible, hvis de skal udveksle info?...
Jeg ikke sikker på jeg helt forstår spørgsmålet, men nej - jeg laver det ikke dynamisk, UID'et anvendes jo kun i forbindelse med serialisering og hvis der ikke er forskelle i klassen ændrer jeg ikke UID'et. UID'et definerer jeg når jeg konstruerer klassen
Inde i eclipse så kan du sætte din cursor på warningen og trykke ctrl+1 så får du en quick fix popup og deri kan du vælge at den skal generer en default serialVer.. eller den skal generer en serialVer.. iht. din klasse... Men carstens metode er faktisk meget smart :0)
Du kan desuden, hvis du vil (vil dog ikke anbefale det), slå denne warning fra inde under preferences|java|compiler|errors/warnings også vælge potential programming problems derunder kan du vælge at den skal ignore Serializable class without serialVersionUID
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.