Wissenswertes zur Serialisierung von Java-Objekten

Angenommen, ein Objekt wird auf einen anderen Host übertragen. Kann es dort wirklich anhand der vom Netzwerk erhaltenen Informationen eingesetzt werden? Es kann – allerdings muss dazu die Java Virtual Machine die Klasse des Objekts kennen.

In Listing B wird das serialisierte Objekt aus der Datei gelesen. Anschließend sollen mithilfe der Methode getClass() eines Objekts Informationen über seine Klasse gefunden werden. Wenn eine Klasse nicht in dem Klassenpfad enthalten ist, kommt die Ausnahme ClassNotFoundException.

Listing B


Das Externalizable Interface

Es kann vorkommen, dass besondere Anforderungen für die Serialisierung eines Objekts vorliegen. Zum Beispiel könnte man bestimmte sicherheitskritische Teile des Objekts, wie Passwörter, nicht aufbewahren und übertragen wollen. Oder es ist unnötig, ein bestimmtes Objekt zu speichern, auf das vom Haupt-Objekt verwiesen wird, da sein Wert nach der Wiederherstellung entfällt.

Der Prozess der Serialisierung ist kontrollierbar, indem das Externalizable Interface statt des Serializable Interface implementiert wird. Dieses Interface erweitert das ursprüngliche Serializable Interface und fügt writeExternal() und readExternal() hinzu. Diese beiden Methoden werden bei der Serialisierung und Deserialisierung des jeweiligen Objekts automatisch aufgerufen, wodurch der gesamte Prozess kontrollierbar wird.

Es gibt einen entscheidenden Unterschied zwischen Serialisierung und Externalisierung: Wenn man ein externalisierbares Objekt serialisiert, wird automatisch ein standardmäßig festgelegter Konstruktor aufgerufen. Erst danach wird die Methode readExternal() aufgerufen. Listing C zeigt eine mögliche Verwendung der Externalisierung.

Listing C


Werden Klassen von einer Klasse übernommen, bei der das Externalizable Interface implementiert ist, muss man die Methoden writeExternal() und readExternal() aufrufen. Das ist notwendig, damit das Objekt korrekt gespeichert und wiederhergestellt werden kann, wenn die betreffende Klasse serialisiert oder deserialisiert wird.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Wissenswertes zur Serialisierung von Java-Objekten

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *