Ich habe mehrere serialisierbare Klassen, die ohne Angabe einer serialVersionUID kompiliert wurden. Ich muss jetzt einige Datenelemente zu diesen Klassen hinzufügen, möchte aber einige bereits serialisierte Objekte beibehalten.Wie kann ich die serialVersionUID eines serialisierten Java-Objekts herausfinden?
Gibt es trotzdem die serialVersionUID dieser serialisierten Objekte herauszufinden, so dass ich die gleiche ID im Quellcode angeben kann?
Stellen Sie sicher, dass Sie dies mit genau der gleichen JVM tun, mit der Sie den Code ursprünglich kompiliert haben! – Eddie
Dies sollte auch auf einer anderen JVM funktionieren, da andernfalls Klassendateien und serialisierte Objekte nicht über JVMs hinweg portierbar wären (was sie sind). – Thilo
Die Java-Objekt-Serialisierungsspezifikation, Abschnitt 4.6, erläutert, wie die serialVersionUID bei internen Klassen möglicherweise nicht kompatibel zu JVMs ist, weil Implementierungen unterschiedliche Namen für synthetische Member erzeugen. Ich habe gesehen, dass dies in der Praxis auch mit zwei Sun JVMs passiert ist. – Martin