Ich lese What is a serialVersionUID and why should I use it? und static final long serialVersionUID = 1L. Von diesen beiden SO-Posts habe ich eine ungefähre Vorstellung davon, was es ist. Es ist eine ID für eine serialisierbare Klasse, die verwendet wird, um zu überprüfen, ob der Sender und der Empfänger während der Deserialisierung kompatibel sind. Wenn nicht, wird InvalidClassException
geworfen.serialVersionUID ohne L, xxxxxxxxxxxxxxxxxL vs 1L, positiv vs. negativ
Ich bin aber neugierig über ein paar Dinge:
serialVersionUID
scheint in 2 „Typ“ unterteilt werden. 19 Zahlen gefolgt von L xxxxxxxxxxxxxxxxxxxl oder 269l oder 1l. Diese Zahlen scheinen nicht beliebig gewählt zu sein. Wenn wir einfach eine ID brauchen, würde keine Nummer funktionieren? Was ist die Logik hinter diesem Design?- Für die 20 Zeichen lang
serialVersionUID
kann es positiv oder negativ sein. Was ist der Unterschied. Auch wennserialVersionUID
zum Zwecke der Identifizierung verwendet wird, warum brauchen wir eine negative Zahl? Wir haben noch nicht alle positiven Zahlen aufgebraucht. - In
MirroredTypedException.java
ist dieserialVersionUID
269 ohne dieL
. Es ist der einzigeserialVersionUID
Ich fand ohne dieL
. Warum das? Was bedeutetL
?
eine Momentaufnahme (dieser Schnappschuss enthält nicht alle von ihnen)