je la structure suivante pour un grand projet Java:Java: Modification de la valeur de la variable statique par chaîne de nom de classe
Class BigParentClass
{
...
};
Et puis de nombreuses classes qui étendent ce BigParentClass, tous ont une même variable statique .
Class A extends BigParentClass
{
static boolean importantVal = false;
};
Class B extends BigParentClass
{
static boolean importantVal = false;
}
..etc..
Ce que je dois faire est, lors de l'initialisation, je vais obtenir une liste des chaînes de nom de classe dans laquelle je dois régler la importantVal variable statique à TRUE. Je vais donc obtenir une liste telle que:
"A, C, F, K"
et je besoin d'une manière dont pour changer la variable statique pour les classes A, C, F, K à TRUE. Quel serait le moyen de le faire?
J'ai essayé de faire quelque chose comme:
Class strToClass = Class.forName(classNameString);
Cependant, il n'y a pas moyen de référencer la variable statique « importantVal » sans jeter cette variable de classe à une classe réelle qui l'a. Dois-je couper juste mes pertes, et une instruction switch pour toutes mes classes qui fait le changement que je dois:
Class class = Class.forName(classNameString);
switch(class)
{
case A:
(A)class.importantVal = true;
break;
case B:
(B)class.importantVal = true;
break;
..etc..
}
Il semble que vous essayez de faire quelque chose de très étrange. Pourquoi voulez-vous changer la variable? Quelle est la grande image? – Kayaman
Je dois rendre quelque chose différemment basé sur cette valeur, et cette valeur peut être changée par une source externe (j'obtiendrais un dossier avec les noms de classe qui exigent que ceci soit changé). La seule autre option consisterait à comparer la classe en cours avec cette liste lors du rendu réel, mais il s'agit potentiellement d'une grande liste et le rendu et le rendu sont assez fréquents. – Tesla