Bonsoir,
J'ai modifié une classe afin de la rendre immutable (par immutable j'entends le fait que l'héritage de cette classe est interdit, et que chaque champ est déclaré final .)
Or, cette classe redéfinissait les méthodes readObject et writeObject afin d'être serializable. Dans mon cas, la méthode writeObject ne pose pas de problème car les deux champs final peuvent être écrits sans problèmes, mais la méthode readObject est elle gênante (car il faut pouvoir assigner les valeurs précédemment lues aux champs ce qui n'est plus possible).
Il faut donc que je modifie ces méthodes pour réinitialiser mon objet immutable. Or je ne vois pas trop comment faire à cette étape. Je pensais le faire par réflection car c'est la seule méthode possible à ma connaissance pour modifier un champ final mais je pense que cela va être dur de garder l'immutabilité de mon objet. En effet, il faut que je m'assure que la référence vers cet objet ne sera publié qu'une fois que tous les champs auront été mis à jour et là je suis coincé ...
Si quelqu'un avait une petite idée ça serait top :-)
Merci d'avance !
Partager