Serialisation

Retour | Home | Contact

Serialization.

Besoin

Enregistrer l'état d'un objet Java pour :

Analyse

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.

Conception

Un objet Java peut être sérialisé :

Implémentation

java.io.Serializable + constructeur public par défaut

Limitations

Exemples

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);
}
}
}

Voir

Retour | Home | Contact