La serialización se implementa realmente en java.io.ObjectOutputStream
(y java.io.ObjectInputStream) y algunas de sus clases de ayuda. En muchos casos, este soporte integrado es suficiente, y el desarrollador simplemente necesita implementar la interfaz de marcador Serializable
. Esta interfaz se denomina "marcador" porque no declara ningún método y, por lo tanto, no requiere ninguna API especial en las clases de implementación.
Un programador puede agregar o reemplazar el mecanismo de serialización predeterminado con sus propios métodos si es necesario. Por ejemplo, si se requiere alguna inicialización adicional después de deserializar un objeto, un método puede ser añadido con la firma siguiente:
private void readObject(java.io.ObjectInputStream s)
throws java.io.IOException, java.lang.ClassNotFoundException
Para el control total sobre la serialización y deserialización, implementar java.io.Externalizable
en lugar de Serializable
.
Hay muchos otros puntos de extensión en la serialización de Java, si es necesario. El serialization specification es una fuente autorizada y completa para aprender sobre todos ellos.
Gracias. Creo que fui malentendido. Lo que realmente estaba preguntando es: si mi clase implementa serializable, quién se encarga de implementar los métodos de serialización. "... La serialización se implementa realmente en java.io.ObjectOutputStream (y java.io.ObjectInputStream) y algunas de sus clases de ayuda ..." parece la respuesta correcta. Gracias erickson! – Macarse