Si una pregunta similar ya está publicada en stackoverflow, los pls solo publican el enlace.¿Por qué es necesario marcar una clase como serializable?
¿Cuál es la necesidad de implementar una interfaz Serializable (sin métodos) para objetos que se serializarán? La API de Java dice - - Si no está implementada, arrojará java.io.NotSerializableException.
Eso es debido al código siguiente en ObjectOutputStream.java
............................
writeObject0(Object obj, boolean unshared){
.............
} else if (cl.isArray()) {
writeArray(obj, desc, unshared);
} else if (obj instanceof Serializable) {
writeOrdinaryObject(obj, desc, unshared);
} else {
throw new NotSerializableException(cl.getName());
}
................
Pero mi pregunta es por qué su necesaria para implementar Serializable y con ello informar o dicen Java/JVM que una clase se puede serializar. (¿Es solo para evitar la excepción?).
En este caso, si escribimos una funcionalidad similar que escribe objetos en flujos sin comprobar si la clase en una instancia de Serializable, ¿se serializarán los objetos de una clase que no implemente Serializable?
Cualquier ayuda es apreciada.
Dupe of http://stackoverflow.com/questions/441196/why-java-needs-serializable-interface –
[Esta pregunta] (http://stackoverflow.com/questions/441196/why-java-needs- serializable-interface) tiene algunas buenas respuestas a esto. – jwoolard