¿Cuál es la diferencia entre readObject
y defaultReadObject
en la clase ObjectInputStream
? Parece que no puedo encontrar mucha información sobre la diferencia.serialización de objetos java readObject/defaultReadObject
9
A
Respuesta
22
defaultReadObject()
invoca el mecanismo de deserialización predeterminado, y se utiliza cuando define el método readObject()
en su clase Serializable
. En otras palabras, cuando tiene una lógica de deserialización personalizada, puede volver a la serialización predeterminada, lo que deserializará sus campos no transitorios y no estáticos. Por ejemplo:
public class SomeClass implements Serializable {
private String fld1;
private int fld2;
private transient String fld3;
private void readObject(java.io.ObjectInputStream stream)
throws IOException, ClassNotFoundException {
stream.defaultReadObject(); //fills fld1 and fld2;
fld3 = Configuration.getFooConfigValue();
}
]
Por otro lado, readObject()
se utiliza cuando se crea la ObjectInputStream
, externamente desde el objeto deserializado, y desea leer un objeto que fue serializada anteriormente:
ObojectInputStream stream = new ObjectInputStream(aStreamWithASerializedObject);
Object foo = (Foo) stream.readObject();
Cuestiones relacionadas
- 1. serialización eficiente de gráficos de objetos Java
- 2. ¿Qué es la serialización de objetos? (Java)
- 3. serialización de objetos dinámicos
- 4. serialización de Java, Kryo y el gráfico de objetos
- 5. Serialización y objetos inmutables
- 6. Objetos de función de serialización
- 7. serialización genérica de objetos en Jackson con Java
- 8. setAttribute: atributo no serializable (Serialización de objetos Java)
- 9. ¿Serialización y deserialización de objetos?
- 10. C# Serialización binaria de objetos
- 11. serialización rápida de objetos simples
- 12. serialización de clases de XStream y objetos
- 13. serialización JSON de matriz con objetos polimórficos
- 14. Serialización de objetos primitivos raíz con Jackson
- 15. serialización de Java ArrayList
- 16. Fecha de serialización en Java
- 17. ¿Usos prácticos de serialización de objetos?
- 18. Serialización de objetos clave extranjeros en Django
- 19. Serialización de objetos derivados sin xsi: tipo
- 20. serialización templada de objetos C# a JSON
- 21. objetos serialización de JSON con play.api.libs.json
- 22. Serialización casera frente a Java
- 23. ¿Qué formato de serialización usa Java?
- 24. Serialización en java
- 25. serialización Java con búfer de protocolo de
- 26. Representación de Java de objetos serializados
- 27. Serialización en Java vs JSON vs XML
- 28. serialización Java con campo transitorio
- 29. serialización Java - java.io.InvalidClassException clase local incompatible
- 30. ¿Cómo puedo depurar la serialización AMF (BlazeDS) de objetos Java en Actionscript?
Cómo detener la excepción de EOF arrojando readObject? –
@Aizaz no puedes. Solo atrapémoslo. – Bozho