Serializable, Android Developers

Serialisierung einer Klasse wird durch die Klasse ermöglicht die java.io.Serializable Schnittstelle implementiert. Klassen, die nicht über diese Schnittstelle implementieren nicht irgendwelche ihres Staates serialisiert oder deserialisiert. Alle Subtypen einer serializable Klasse sind selbst serializable. Die Serialisierung Schnittstelle hat keine Methoden oder Felder und dient nur die Semantik des Seins serializable zu identifizieren.

Bei der Deserialisierung werden die Felder nicht serialisierbaren Klassen initialisiert, um die Öffentlichkeit mit oder ohne argument Konstruktor der Klasse geschützt. A no-Konstruktor arg muss die Unterklasse zugänglich sein, die serialisierbar ist. Die Felder des serializable Subklassen werden aus dem Strom gestellt werden.

Klassen, die eine spezielle Behandlung während der Serialisierung und Deserialisierung benötigen, müssen spezielle Methoden mit genau diesen Unterschriften implementieren:

Die Methode write ist verantwortlich für den Zustand des Objekts für seine besondere Klasse zu schreiben, so dass die entsprechende readObject- Methode es wiederherstellen. Der Standardmechanismus für die Objektfelder Speichern kann durch den Aufruf out.defaultWriteObject aufgerufen werden. Das Verfahren braucht nicht selbst zu kümmern mit dem Zustand in seinen übergeordneten Klassen oder Unterklassen gehört. Zustand wird durch das Schreiben der einzelnen Felder auf dem Object mit der write Methode oder unter Verwendung der Methoden für primitive Datentypen unterstützt Output gespeichert.

Serializable Klassen, die ein alternatives Objekt bezeichnen, müssen verwendet werden, wenn in den Stream ein Objekt zu schreiben sollte diese spezielle Methode mit der genauen Signatur implementieren:

Diese writeReplace Methode wird durch Serialisierung aufgerufen, wenn die Methode existiert, und es wäre von einer Methode innerhalb der Klasse des Objekts wird serialisiert definiert zugänglich sein. Somit kann das Verfahren privat hat, geschützt und Paket-privaten Zugang. Subklassen-Zugang zu diesem Verfahren folgt java Zugänglichkeit Regeln.

Klassen, die einen Ersatz, wenn eine Instanz davon bezeichnen, müssen aus dem Stream gelesen wird, sollen diese spezielle Methode mit der genauen Signatur implementieren.

Diese readResolve Methode folgt den gleichen Aufruf Regeln und Regeln der Zugänglichkeit als writeReplace.

Serializable implementieren Vernünftig

Siehe Effective Java ‚s Kapitel über die Serialisierung für gründliche Berichterstattung über die Serialisierung-API. Das Buch erklärt, wie diese Schnittstelle verwenden, ohne Ihre Anwendung Wartbarkeit zu schaden.

Empfohlene Alternativen

JSON ist prägnant, für Menschen lesbaren und effizient. Android beinhaltet sowohl ein Streaming-API und einen Baum API JSON lesen und zu schreiben. Verwenden Sie eine verbindliche Bibliothek wie Gson zu lesen und Java-Objekte direkt zu schreiben.

Diese Klasse erfordert API-Ebene oder höher

Dieses Dokument ist versteckt weil Ihre ausgewählte API-Ebene für die Dokumentation ist. Sie können über die linke Navigation mit dem Wähler in der Dokumentation API-Ebene ändern.

Weitere Informationen über die API-Ebene unter Angabe Ihrer App erfordert, lesen Verschiedene Plattform-Versionen zu unterstützen.

In Verbindung stehende Artikel