2010-07-27 9 views
19

Tengo una clase Foo, es Serializable. Representa un objeto gráfico, y quiero que restaure sus identificadores al estado antes de la serialización. Todos los datos se almacenan dentro del objeto, solo necesito que se llame un método en el momento correcto. ¿Cómo puedo lograrlo? ¿Es esto posible en Java?¿Cómo ejecutar automáticamente un método después de la deserialización?

(tengo mis Foo s en un objeto List en Bar, y en algunos otros lugares. - Es por eso que no quiero hacerlo de forma manual)

Respuesta

29

clases que requieren un manejo especial durante la serialización y el proceso de deserialización debe implementar métodos especiales con estas firmas exactas:

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

implementar este método, y llaman in.defaultReadObject(), y después d o cualquiera que sea la lógica personalizada que desee.

Comprobar la documentación de java.io.Serializable para más detalles

+1

Esto realmente me han ayudado mucho. Ojalá cosas así se enseñaran en libros más. – eaglei22

Cuestiones relacionadas