Je viens de découvrir en Java que vous pouvez déclarer un champ 'static transient' - le compilateur ne se plaint pas. Cela ne semble pas être utile de quelque manière puisque les champs statiques ne sont pas sérialisés, comme nous le savons tous.
Mais je me demande, y a-t-il réellement un cas où les champs 'static transient' sont utiles ?
41 votes
Les champs statiques transitoires peuvent être détectés via la réflexion. Vous pouvez écrire votre propre sérialiseur pour générer du XML, du JSON, etc. et vous pouvez lui donner un sens spécial si vous avez l'intention de sauvegarder également des variables statiques.
0 votes
+1 pour avoir trouvé un cas d'utilisation. Je pensais que c'était redondant.
3 votes
Soit dit en passant : vous pouvez avoir d'autres combinaisons de modificateurs qui n'ont pas autant de sens, comme un constructeur public sur une classe abstraite ou un constructeur/méthode protégé d'une classe finale.
1 votes
Avec réflexion, toute combinaison de modificateurs peut avoir du sens (plus ou moins) ;-)
1 votes
@ Peter Lawrey: Je vous suggère de reposter votre réponse ci-dessus en tant que réponse distincte afin que je puisse la marquer comme acceptée.
0 votes
La chose est : il est probablement sûr de dire que c'est un point où les spécifications Java auraient pu être plus claires. Ils auraient pu éviter "static transient" et ainsi rendre le point des sérialiseurs personnalisés non pertinent.