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.
Zwei Use-after-free-Bugs stecken in Picture In Picture und der WebGPU-Implementierung Dawn. Betroffen sind Chrome für…
Die durchschnittliche Lösegeldzahlung liegt bei 2,5 Millionen Dollar. Acht Prozent der Befragten zählten 2023 mehr…
Eine neue Analyse der EU-Kommission sieht vor allem eine hohe Verbreitung von iPadOS bei Business-Nutzern.…
Das operative Ergebnis wächst um fast 6 Billionen Won auf 6,64 Billionen Won. Die Gewinne…
Ab Werk blockiert Chrome Cookies von Dritten nun frühestens ab Anfang 2025. Unter anderem gibt…
Die Vorfreude steigt, denn BAUMLINK wird als Partner und Aussteller bei der Tech Show 2024…