Announcement

Collapse
No announcement yet.

SerialVersionUID - Warning

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SerialVersionUID - Warning

    Hallo!
    Bei einer meiner Klassen, welche von org.apache.struts.action.ActionForm abgeleitet ist, welche wiederum von java.io.Serializable abgeleitet ist, bekomme ich ein Waring, dass ich ein static final serialVersionUID deklarieren soll.

    Dazu habe ich 2 Fragen:
    1) Soll diese ID komplett zufällig sein?
    2) Wazu dient diese denn?

    Wäre super, wenn mir das jemand erklären könnte!

    Grüße,
    Mephi

    Edit:
    Ich hab grade erst gesehen, dass java.io.Serializable nur ein Interface ist. Also bitte nicht schlagen

  • #2
    Hallo!

    zu 1
    Verwendest Du zufällig die Entwicklungsumgebung Eclipse? Dann kannst Du einfach auf das am linken Rand des Editorfensters abgebildete Warnzeichen klicken und Dir die UID generieren lassen. Das ist das einfachste.
    Ansonsten kann man das auch mit dem Tool serialver.exe machen, welches im bin-Verzeichnis des JDK liegt.

    zu 2)
    Das Interface Serializable zeigt an, daß Objekte dieser Klasse serialisierbar sind, also - simpel ausgedrück - in ein Datenstrom verwandelt und wieder in ein Objekt zurück verwandelt verden können. Das ist zum Beispiel erforderlich, wenn man ein Objekt per RMI über das Netz verschicken möchte. Oder Man will direkt Objekte in Dateien speichern - ohne Dateiformat und entsprechender Umformung.
    Aber Klassen können sich im Laufe der Zeit ändern. Zwei Klassen mit dem gleichen Namen (und gleichem Package) müssen nicht unbedingt gleich sein. Ein serialisiertes Objekt kann aber nur wieder deserialisert werden, wenn dann die Klasse noch paßt.
    Die Serial-Version-UID ist ein Identifier, der über den Klassennamen hinaus Identität für das Serialisieren sichert.


    In der Hoffnung, geholfen zu haben,
    Stefan

    Comment

    Working...
    X