Sinn des Serializable Interfaces

fleckdalm

Bekanntes Mitglied
Der Titel sagt eigentlich schon alles;-)
Warum muss man zum serialisieren erst das serializable Interface implementieren? Ohme wäre doch alles viel einfacher, besonders wenn eine Verwendete Klasse das Interface nicht implementiert hat gibt es nämlich nur probleme...
Achja und wenn ich schon mal dabei bin:
Man kann in den zu serialisierenden Klassen ja die Methoden read und write object erstellen die dann beim serialisieren aufgerufen werden. Aber diese methoden werden ja nicht überschrieben sondern einfach erstellt, wie funktioniert das intern das er weiß das ich diese Methoden erstellt habe... Das nur so rein aus Interesse;-)
Grüße fleckdalm
 
Danke für die Antworten!
Ich benutze kein spezielles Framework zum Serialisieren sondern einfach die Klasse ObjectOutoutStream!
Mir ist schon klar das Serializable zur "kennzeichnung" ist aber wäre es ohne den Zwang das Interface zu implementieren nicht viel einfacher?
 
der grund dahinter ist das man nun mal nich alles serialisieren kannst ...

du kannst z.b. keine "Socket" instanz speichern ... hätte auch keinen sinn ... da hier eben SourceIP:SourcePort und DestIP😀estPort auch noch ganz andere , protokoll-interne werte wie flags, stream-positionen und der gleichen mit serialisiert werden müssten ...
auch alles was in Socket referenziert ist ... wie z.b. die beiden streams ... oder eben der LocalPort ...

es würde also überhaupt keinen sinn machen "Socket" zu serialiseren ... und damit dieses eben "sauber" abgefangen werden kann wird auf das Marker-Interface "Serializable" gecheckt ... und wenn dies nicht implementiert wird halt die Exception geworfen ...

der sinn hinter diesem Interface ist nun mal zu kennzeichnen ob man eine klasse serialisieren kann oder nicht ... mit dem hintergrund das es bei den meisten klassen die dieses interface nicht implementieren auch gar kein sinn machen würde ...

wenn es dieses interface nicht geben würd eund du wahllos einfach alles serialisieren könntest ... überleg mal was du dann für ein chaos anrichten könntest wenn du diesen ganzen "mist" wieder deserialisierst ...
 

Neue Themen


Zurück
Oben