Serialisierung - Sinn einer generierten serialVersionUID?

equin

Aktives Mitglied
Hallo,

mal eine kurze Frage, wenn ich in eclipse eine Klasse erstelle, die das Interface "Serializable" implementiert, zeigt mir eclipse eine Warnung und schlägt mir vor, eine default serial id (-> 1) hinzuzufügen oder eine zu generieren (e.g: 5962860443947554150L).

Da dies ja eine Art Versionsnummer ist macht es für mich eigentlich nur Sinn bei 1 anzufangen und dann neuere Versionen hochzuzählen?

Gibt es einen logischen Grund für eine generierte serial id?

Viele Grüße
equin
 

D4rkscr43m

Bekanntes Mitglied
Ich glaube der Sinn dahinter ist, dass deine Klasse 100%ig eindeutig wird (mit der 1L würde sie das ja nicht) damit sie Serialisiert und auch wieder deserialisiert werden kann.

Bin mir da aber nicht ganz sicher.
 
M

Marcinek

Gast
Hi,

Das macht nur dann Sinn, wenn es die egal ist.

Das kann genau dann sein, wenn sich diese klasse niemals ändert. Oder Änderungen so implementiert sind, dass die kalsse sich nicht ändert; eG hashmaps als datenhaltung.

Aber du hast recht. Sinniger ist bei eins anzufangen. Wenn sich die klasse ändert hochzählen. Damit sagst du alle alten serialisierunfen sind ungültig.


Gruß Martin.
 
N

nillehammer

Gast
Warum generieren und nicht 1L? In einem bestimmten Szenario macht das Sinn:
- Du hast bereits eine Serializable-Klasse ohne explizite serialVersionUid
- Du hast gelesen, dass es besser ist, diese explizit zu deklarieren und willst das jetzt nachholen
- Du willst das so tun, dass Deine Klasse kompatibel zur Version ohne explizite serialVersionUid ist
Dann rufe die generate-Funktion auf. Die führt die Berechnung nämlich genau so durch, wie die VM es machen würde, wenn es keine gäbe. Damit würde ein Vergleich der beiden Werte (dynamisch von VM berechnet bei Version ohne expliziten Wert zu der Version, wo Du diesen Wert explizit angegeben hast) true ergeben und die beiden Versionen wären kompatibel.

Ansonsten würde ich zu 1L, 2L, 3L ... raten.
 
S

SlaterB

Gast
die generierte Id ist kein Zufallswert, sondern aus den Feldern/ Code berechnet

ein Punkt zumindest, der mir gerade bei einer Suche auffiel:
wenn man bereits Objekte serialisiert hat ohne Id bisher und die Klasse ändert,
aber die alten gespeicherten Objekte noch verwenden will, dann kann man sich zum alten Zustand die Id erzeugen, auf die man selber ja nie käme, und es funktioniert gerade noch

allerdings ein recht konstruierter Fall, da könnte man auch gleich die Klasse unverändert/ zurückgeändert verwenden um die Objekte nur zu laden und anders zu speichern..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
antonia09 Einkaufszettel Persistenz und Serialisierung Allgemeine Java-Themen 6
D Serialisierung und Deserialisierung von Objekten - Frageprogramm Allgemeine Java-Themen 4
R Datentypen Korrekte integer in Hex ASCII Konvertierung und serialisierung Allgemeine Java-Themen 1
M Serialisierung funktioniert nicht Allgemeine Java-Themen 9
Z Best Practice Serialisierung Allgemeine Java-Themen 2
Arif Input/Output Serialisierung - Datei wird nicht erzeugt Allgemeine Java-Themen 3
M Alternative zur Serialisierung.. Protobuf? Allgemeine Java-Themen 9
E Serialisierung - Deserialisierung Allgemeine Java-Themen 4
Thallius Serialisierung schlägt fehl. Allgemeine Java-Themen 3
M Serialisierung & Verschlüsselung Allgemeine Java-Themen 2
V Serialisierung von Instanz eigener Klasse Allgemeine Java-Themen 5
A Input/Output Serialisierung und Object.hashCode() Allgemeine Java-Themen 3
K Serialisierung einer verschachtelten Datenstuktur Allgemeine Java-Themen 9
Tobse Input/Output Dateiformat: Serialisierung VS Custom format Allgemeine Java-Themen 6
A Problem bei Serialisierung von Bibliotheks-Klassen Allgemeine Java-Themen 6
A Input/Output Serialisierung Sonderzeichen Allgemeine Java-Themen 3
P Serialisierung der Oberklasse Allgemeine Java-Themen 2
Kr0e Circular reference - Serialisierung Allgemeine Java-Themen 6
K Serialisierung in Properties-Datei möglich? Allgemeine Java-Themen 3
B Serialisierung mit Unterobjekten über Netzwerk Allgemeine Java-Themen 3
C Serialisierung - Standardwert für nachträglich hinzugefügtes Feld Allgemeine Java-Themen 2
S Serialisierung der Kindklasse Allgemeine Java-Themen 5
K Serialisierung komplett selbst machen Allgemeine Java-Themen 13
C Serialisierung ohne Serializable Allgemeine Java-Themen 4
S Serialisierung und Referenzen Allgemeine Java-Themen 6
S Viele Bilder -> Speicher ausgelastet? / (De-)serialisierung geht nicht mehr richtig Allgemeine Java-Themen 8
E Objekt bei Serialisierung ändern Allgemeine Java-Themen 2
Q Serialisierung / Speicherung Geschwindingkeit & Aktuelle Position Allgemeine Java-Themen 7
Z Serialisierung und Deserialisierung einer HashMap Allgemeine Java-Themen 17
W Serialisierung Allgemeine Java-Themen 6
K Serialisierung von Hashmap in Vector Allgemeine Java-Themen 3
F Serialisierung und Obfuscation? Allgemeine Java-Themen 7
G (De)serialisierung und Referenzen Allgemeine Java-Themen 5
T Serialisierung: Wie macht RMI das so schnell? Allgemeine Java-Themen 14
J Serialisierung: readInt + writeInt Allgemeine Java-Themen 4
X Einige Fragen zu Serialisierung Allgemeine Java-Themen 2
J bean + serialisierung + serialVersionUID Allgemeine Java-Themen 3
K Serialisierung Allgemeine Java-Themen 6
thE_29 Wie funktioniert Serialisierung? Allgemeine Java-Themen 10
S Problem mit Serialisierung Allgemeine Java-Themen 2
C Serialisierung von JComboBox Allgemeine Java-Themen 4
G Public oder Private oder Protected Sinn Allgemeine Java-Themen 14
A Best Practice Wie viele Referenzen machen Sinn? Weniger ist mehr? Allgemeine Java-Themen 1
T Sinn einer toString Methode Allgemeine Java-Themen 3
M Sinn von Kompilierung zur Laufzeit Allgemeine Java-Themen 3
M Sinn von Threads? Allgemeine Java-Themen 1
Thallius Macht das Sinn? Allgemeine Java-Themen 30
A Methoden Der Sinn von system.out.print(); Allgemeine Java-Themen 9
M Generics (bounded wildcards statt Interface Bezeichnern) -- Sinn oder Unsinn? Allgemeine Java-Themen 2
E einfaches Beispiel zu MVC und Sinn V --> M ? Allgemeine Java-Themen 22
F Sinn des Serializable Interfaces Allgemeine Java-Themen 8
S Konstrukt Sinn, Zewck und Name Allgemeine Java-Themen 6
N Für welche Art von Berechnungen macht JCUDA Sinn? Allgemeine Java-Themen 12
M Sinn von XML in Java Allgemeine Java-Themen 10
A Was ist der genau Sinn eines Interface? Allgemeine Java-Themen 13
H Was ist der genau Sinn von tString()? Allgemeine Java-Themen 3
P Verschiedene Aspekte einer idempotent API verstehen? Allgemeine Java-Themen 16
Zrebna Ausführung einer Testmethode in der IDE erfolgreich - failt aber via 'mvn test' Allgemeine Java-Themen 5
S Interpreter-Fehler Kann mir das mal einer erklären? Allgemeine Java-Themen 12
Zrebna Aus einer jar-Datei eine exe-Datei erzeugen lassen Allgemeine Java-Themen 37
O Text aus einer Textdatei rausholen, der zwischen zwei Schlüsselworten steht Allgemeine Java-Themen 4
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
M Methodenübersicht einer Klasse einsehen Allgemeine Java-Themen 14
T JNA, Aufruf der Funktionen einer dll Allgemeine Java-Themen 5
I Vom Monolith zu Services in einer Webseite Allgemeine Java-Themen 1
W Variable Initialisierung mit dem Ergebnis einer Regex Allgemeine Java-Themen 1
O Werte einer Generic LinkedList zusammenrechenen Allgemeine Java-Themen 14
C Sortieren und Selektieren einer ArrayList<Point3D> Allgemeine Java-Themen 6
A Einzelne Objekte und Unterobjekte einer ArrayList ausgeben Allgemeine Java-Themen 53
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
M Optimierung einer Methode (byte-Geraffel) Allgemeine Java-Themen 2
I Wie kann ich den Wert aus einer If abfrage ausgeben Allgemeine Java-Themen 23
S HTML einer Webseite 1:1 so bekommen wie es auch der Browser anzeigt? Allgemeine Java-Themen 14
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
J (Geplante) Änderungen an einer Datei vorübergehend speichern und anwenden? Allgemeine Java-Themen 12
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
_user_q Obfuscate einer .jar-Datei mit ProGuard? Allgemeine Java-Themen 2
_user_q Verknüpfung einer .jar-Datei (liegt z. B. auf dem Desktop) im Autostart-Ordner erstellen? Allgemeine Java-Themen 20
C Parsen einer sich updatenden Html mithilfe von jsoup Allgemeine Java-Themen 4
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
H Performance einer Monte-Carlo-Simulation verbessern Allgemeine Java-Themen 6
LimDul Kam eine java.net.URL zu einer HashMap und ging als DNS Anfrage wieder heraus Allgemeine Java-Themen 18
E Variablen Nach Übergabe einer Variable den Constructor aufrufen Allgemeine Java-Themen 16
Zeppi NullPointerException in einer if-Abfrage Allgemeine Java-Themen 6
D Abbruch einer ViewScoped Bean in Arbeit Allgemeine Java-Themen 2
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
Lukas2904 Wie kann man cps (ClicksPerSecond) in einer GUI anzeigen lassen? Allgemeine Java-Themen 4
O Produziert das Tool "jpackage" (ab JDK 14) .exe Dateien, die auf einer Zielumgebung ohne JRE lauffähig sind ?` Allgemeine Java-Themen 7
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
N BlueJ Implementation einer Analoguhr Allgemeine Java-Themen 0
O Formatierte String ausgabe bei vier Variablen in einer Zeile Allgemeine Java-Themen 1
N Speicherort einer Datei im Explorer ändern Allgemeine Java-Themen 8
O Datentypen Wie kann ich den Typ einer ArrayList abfragen ? Allgemeine Java-Themen 7
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
H Mehrere PNG-Files in einer Datei Allgemeine Java-Themen 9
G Java Editor Löschen doppelter Zahlen einer Liste Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben