Quelle est la différence entre readObject
et defaultReadObject
dans la classe ObjectInputStream
? Je n'arrive pas à trouver beaucoup d'informations sur la différence.sérialisation d'objet java readObject/defaultReadObject
9
A
Répondre
22
defaultReadObject()
appelle le mécanisme de désérialisation par défaut et est utilisé lorsque vous définissez la méthode readObject()
sur votre classe Serializable
. En d'autres termes, lorsque vous avez une logique de désérialisation personnalisée, vous pouvez toujours revenir à la sérialisation par défaut, qui désérialisera vos champs non statiques et non transitoires. Par exemple:
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();
}
]
D'autre part, readObject()
est utilisé lorsque vous créez le ObjectInputStream
, à l'extérieur de l'objet désérialisé, et que vous voulez lire un objet qui a déjà été publié en feuilleton:
ObojectInputStream stream = new ObjectInputStream(aStreamWithASerializedObject);
Object foo = (Foo) stream.readObject();
Questions connexes
- 1. problème de sérialisation Java
- 2. Java: Sérialisation JAXB générique
- 3. Sérialisation Java avec RMI
- 4. Test de sérialisation Java
- 5. . Compatibilité de sérialisation/désérialisation Java vers Java
- 6. sérialisation et extériorisation en java
- 7. Sérialisation Java d'un tableau multidimensionnel
- 8. Explication de sérialisation en Java
- 9. sérialisation d'objet java - thread sûr?
- 10. Sérialisation Java: readFields/putFields vs Sérialisé Map
- 11. Java. Sérialisation d'objets dans un environnement multithread
- 12. objet Hibernate sérialisation
- 13. Marshalling et sérialisation
- 14. JMeter proxy et la sérialisation java dans HTTP/POST?
- 15. Sérialisation d'objets Java en xml et en arrière (configuration XML)
- 16. Sérialisation de classes java immuables en actionscript avec LCDS
- 17. Sérialisation d'objet pour annuler/rétablir la fonctionnalité Java
- 18. Prise en charge de la sérialisation Java xml
- 19. Sérialisation d'objets Stanford Parser
- 20. sérialisation XML en utilisant boost :: sérialisation
- 21. C++ Boost sérialisation sérialisation templated classes dérivées
- 22. Sérialisation d'événements
- 23. WCF sérialisation
- 24. Sérialisation Javascript
- 25. Sérialisation ANTLR
- 26. sérialisation objet
- 27. .Net sérialisation
- 28. JSON sérialisation
- 29. GWT java.util.Date Bogue de sérialisation
- 30. Codage de sérialisation de test
Comment arrêter readObject levant l'exception EOF? –
@Aizaz vous ne pouvez pas. Attrape-le. – Bozho