J'ai hésité à mettre cette question sur mon précédent post, mais en fait c'est bien une question distincte...

Lorsqu'un attribut est déclaré transient, il n'est pas sérializé, et quand on charge la classe avec ObjectInputStream.readObject(), sa valeur est null (ou valeur par défaut pour les types primitifs).
Y'a-t-il un moyen de récupérer une valeur prédéfinie lors du chargement, pour éviter de faire une méthode qui initialise ces valeurs?

Un exemple concret :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class A {
    private String name;
    private transient List<XListener> listeners;
    ...
    public A(String name) {
        this.name = name;
        listeners = new ArrayList<XListener>();
    }
    ...
    public void addXListener(XListener listener) {
        listeners.add(listener);
    }
    ...
}
Si listeners est null, ça pose un problème ^^