Bien que je ne prévoie pas actuellement de sérialiser quoi que ce soit, je donne à toutes les classes externes sérialisables, ainsi qu'aux classes imbriquées statiques, un SerialVersionUID
, parce que c'est la bonne façon de le faire.Java: Les classes internes et anonymes sérialisables doivent-elles avoir SerialVersionUID?
Cependant, j'ai lu here que
sérialisation des classes internes (à savoir, les classes imbriquées qui ne sont pas des classes de membres statiques), y compris les classes locales et anonymes, est fortement déconseillée pour plusieurs raisons. ...
Ma question est la suivante:
Dois-je donner des cours internes et anonymes un SerialVersionUID
chacun, ou devrais-je ajouter un @SuppressWarnings("serial")
à ceux?
Est-ce que l'un est plus approprié que l'autre?
Je ferai en tout cas référence à de telles classes transitoires, car je ne veux pas qu'elles soient sérialisées.
Je pense que le conseil que vous ne devriez pas sérialiser ces classes est déconseillé parce que vous ne savez pas si la JVM, qui désérialise les objets a les classes sur le chemin de classe. – keuleJ
Donc, je devrais les traiter comme d'autres classes sérialisables? –
Je n'utiliserais qu'un serialVersionUID, si vous avez besoin de compatibilité entre les versions. par exemple. si vous écrivez les objets dans un fichier ou similaire. – keuleJ