Si on a un attribut transient et final à la fois, quand on récupère l'objet sérialisé, on a l'attribut à null, et on peut pas le réinitialiser

Y'a-t-il une solution?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class TestSerializable implements Serializable {
 
    private transient final List<String> s = new ArrayList<String>(); 
 
    public TestSerializable() {
        s.add("abc");
        s.add("def");
    }
 
    public static void main(String...args) throws Exception {
        TestSerializable ser = new TestSerializable();
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("test.dat")));
        oos.writeObject(ser);
        oos.close();
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("test.dat")));
        TestSerializable res = (TestSerializable)ois.readObject();
        System.out.println(res.s);
    }
}
Ceci affiche null...