I имеют следующую структуру для большого проекта Java:Java: Изменение значения статической переменной по имени класса строки
Class BigParentClass
{
...
};
И тогда многие классы, расширяющие этот BigParentClass, все из которых имеют ту же статическую переменную ,
Class A extends BigParentClass
{
static boolean importantVal = false;
};
Class B extends BigParentClass
{
static boolean importantVal = false;
}
..etc..
Что мне нужно сделать, это, во время инициализации, я буду получать список имен класса строк, в которых мне нужно установить статическую переменную importantVal в TRUE. Поэтому я получить список таких как:
"A, C, F, K"
и мне нужен способ, в котором можно изменить статическую переменную для классов A, C, F, K в TRUE. Каким был бы способ сделать это?
Я пытался сделать что-то вроде:
Class strToClass = Class.forName(classNameString);
Однако, нет никакой возможности ссылаться на «importantVal» статическую переменную без литья этой переменной класса до фактического класса, который имеет его.
Class class = Class.forName(classNameString);
switch(class)
{
case A:
(A)class.importantVal = true;
break;
case B:
(B)class.importantVal = true;
break;
..etc..
}
Похоже, вы пытаетесь сделать что-то очень странное. Почему вы хотите изменить переменную? Какая картина? – Kayaman
Мне нужно сделать что-то по-другому на основе этого значения, и это значение может быть изменено внешним источником (я бы получил файл с именами классов, которые требуют, чтобы это было изменено). Единственный другой вариант - при выполнении фактического рендеринга сравнить текущий класс с этим списком, но это потенциально большой список, и рендеринг и повторный рендеринг происходят довольно часто. – Tesla