Portal > Foren > Java > Allgemeine Java-Programmierung > serialVersionUID - was bringt es?
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 14.03.2006, 07:10 Nach oben    #1
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard serialVersionUID - was bringt es?

Hallo,
mir wurde geraten, die von mir verwendeten Klassen mit so einer Zeile auszustatten.
Java Code:
  1. private static final long serialVersionUID = 1L;
Ähm, was genau bringt mir die Zeile nochmal?

Die Identifizierung des Applets?

Danke.
Grüße, Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 11:15 Nach oben    #2
Oliver O.
 
Benutzerbild von Xean
 
Registriert seit: 17.08.2005
Beiträge: 428
Standard

Das hab ich über google gefunden:
Code:
Beim Serialisieren eines Objektes wird auch die serialVersionUID der zugehörigen
Klasse mit in die Ausgabedatei geschrieben. Soll das Objekt später deserialisiert
werden, so wird die in der Datei gespeicherte serialVersionUID mit der aktuellen
serialVersionUID des geladenen .class-Files verglichen. Stimmen beide nicht
überein, so gibt es eine Ausnahme des Typs InvalidClassException, und der
Deserialisierungsvorgang bricht ab.

Quelle: www.informatik.hu-berlin.de/ 
und diese zeile gibt es eigendlich überall, wo eine klasse von einer anderen erbt.
Xean ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 17:35 Nach oben    #3
Erfahrener Benutzer
 
Benutzerbild von JumperII
 
Registriert seit: 27.02.2006
Beiträge: 159
Standard

Naja, nicht in allen Klassen, nur in denen, in den das Interface java.io.Serializable verwendet wird und entsprechende Perlmutationen aus abgeleiteten Klassen und Interfaces Das dürfte dann so pi mal Daumen 90% ausmachen ....

-> http://www.javapractices.com/Topic45.cjp

Gruß,
Jumper, the II.
JumperII ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 18:09 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Zitat:
Zitat von JumperII
Naja, nicht in allen Klassen, nur in denen, in den das Interface java.io.Serializable verwendet wird
Yeah. Das ist mal eine Aussage.

Dankö.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 18:57 Nach oben    #5
Wikinger
 
Benutzerbild von xardias
 
Registriert seit: 02.03.2006
Ort: Aachen
Beiträge: 189
Standard

Kurz gesagt: Alle Klassen die serialisierbar sind (also auch applets) sollten so eine ID definieren. Wenn du später mal mehrere "versionen" dieser klasse hast und möchtest z.b. eine serialisierte Form einer älteren klasse laden muss das verhindert werden, weil die nicht mehr kompatibel sind. Dazu dient diese UID.
xardias ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 19:54 Nach oben    #6
Benutzer
 
Registriert seit: 15.11.2005
Beiträge: 75
Standard

Das funktioniert natürlich nur dann, wenn man daran denkt, bei jeder die Serialisierung betreffenden Änderung (also immer dann, wenn Felder ihren Typ ändern, Felder wegfallen oder hinzukommen oder sich die Ableitungsstruktur ändert) auch diese ID zu verändern - von selbst geht das nicht.
Murray ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
serialVersionUID koneo Allgemeine Java-Programmierung 2 05.09.2005 14:52
Warning: the serializable class A doesn`t [...] static final serialVersionUID [...] Arvodan Allgemeine Java-Programmierung 5 01.09.2005 09:16


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:22 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45