2010-07-27 4 views
19

Ich habe eine Klasse Foo, es ist Serializable. Es stellt ein grafisches Objekt dar, und ich möchte, dass es seine Handles in den Zustand vor der Serialisierung zurückstellt. Alle Daten sind im Objekt gespeichert, ich brauche nur eine Methode, die im richtigen Moment aufgerufen wird. Wie kann ich es erreichen? Ist das in Java möglich?Wie wird eine Methode nach der Deserialisierung automatisch ausgeführt?

(Ich habe meine Foo s in einem List in Bar Objekt, und in einigen anderen Orten -. Das ist, warum ich will es nicht manuell tun)

Antwort

29

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

private void readObject(java.io.ObjectInputStream in) 
    throws IOException, ClassNotFoundException; 

implementieren Sie diese Methode, und rufen Sie in.defaultReadObject(), und dann d o welche benutzerdefinierte Logik Sie wollen.

Überprüfen Sie die Dokumente von java.io.Serializable für mehr Details

+1

Das half mir wirklich viel. Ich wünschte, solche Dinge würden mehr in Büchern gelehrt. – eaglei22

Verwandte Themen