re-initialiser les variables statiques d'une classe à leurs valeurs d'origine java
J'ai une classe qui a une bonne quantité de variables statiques, qui ne sont pas tous initialisés à leurs valeurs par défaut (par exemple, j'ai un booléen j'initialise à true, un Ensemble I d'initialiser un nouveau Set(), etc.). Cette classe est un peu comme un contrôleur, qui fonctionne sur les autres classes. Après avoir fait fonctionner sur une classe, je voudrais réinitialiser l'ensemble de ses variables statiques à leurs valeurs d'origine (si elle existe) quelque chose qui est une partie de l'API java, de sorte que je n'ai pas à faire un "reinitializeClassVariables()" avec une douzaine de variables qui doivent être mis à jour chaque fois que je fais toutes les modifications de la statique des variables déclarées dans la classe. Des idées?
OriginalL'auteur Peter Berg | 2011-11-02
Vous devez vous connecter pour publier un commentaire.
Non, rien de construire-dans. Vous pouvez faire quelque chose avec de la réflexion ou de l'octet code de la manipulation, mais il ne vaut pas la peine et rend tout plus compliqué. Peut-être que vous pouvez restructurer les variables statiques dans une nouvelle classe et puis remis à zéro avec une nouvelle instance "lorsque tout est terminé".
OriginalL'auteur PeterMmm
Sérieusement sonne comme, vous feriez mieux de avec instance variables. Ensuite, vous pouvez simplement créer une nouvelle instance de votre classe (ou une classe contenant vos paramètres) à l'aide de
new
, et toutes les variables soient initialisées à leurs valeurs initiales. Quelque chose comme ceci:Non, il n'y a pas une telle chose dans l'API (en fait, il aurait à faire partie de la spécification du langage, je crois). L'utilisation de variables statiques est tout simplement un très mauvais choix dans votre cas d'utilisation.
Si c'est mutable, il n'a probablement pas de sens d'être statique. (+1)
Vrai. J'ai juste pensé que, puisqu'il est de variables a été, à l'origine, statique, il faudrait entrer dans plus de refactoring si
controlParams
n'était pas statique. 🙂OriginalL'auteur aioobe