| Retour | Home | Contact |
|---|
Serialization.
Enregistrer l'état d'un objet Java pour :
La sérialisation consiste à enregistrer tout ce qui constitue l'état d'un objet dans un flux quelconque (fichier, socket, etc.). Cela peut inclure l'ensemble de ses attributs ou une sélection de ceux-ci. Ces attributs peuvent être aussi bien des types simples que d'autres objets complexes, incluant eux-même des attributs complexes, etc.
Un objet Java peut être sérialisé :
java.io.Serializable + constructeur public par défaut
Un exemple d'objet sérialisable est :
class MonObject extends MonAncetre implements java.io.Serializable {
protected int id; // Sera sérialisé
private String nom; // Sera sérialisé
private OtherObject objet; // Sera sérialisé
private transient Thread traitement; // Ne sera pas sérialisé
/**
* Constructeur par défaut.
* Nécessaire pour la désérialisation.
*/
public MonObject() {
}
}
Un exemple de sérialisation personnalisée est :
class MonObject extends MonAncetre implements java.io.Serializable {
protected int id;
private String nom;
private OtherObject objet;
private transient Thread traitement;
public MonObject() {
}
/**
* Personalisation de la désérialisation
*/
private void readObject(ObjectInputStream someObjectStream) {
try {
someObjectStream.defaultReadObject(); // Exécute la sérialisation par défaut d'abord
traitement = new Thread (nom); // Récrée un Thread similaire (qui n'était pas sérialisable)
} catch (Exception e) {
throw new RuntimeException("Erreur lors de la désérialisation: " + e);
}
}
}
| Retour | Home | Contact |
|---|