Bro, Для вопроса, прежде всего, нам нужно прояснить некоторую концепцию.
В Java, если идентификатор является членом класса и декорирован ключевым словом «static», его значениеРешено на этапе компиляции.
Если добавлено ключевое слово 'final', идентификатор является константой, его значение должно иметь начальное значение, оно объявлено. И значение не может быть изменено во время выполнения Java.
И интересно то, что статическая составляющая объявляется только внутри класса, ее можно назвать 'Classname' + '.', но не имеет связи с контекстом класса. если нет контекста, идентификатор не становится динамическим.
Я думаю, что если позволить идентификатору стать динамическим, есть только два пути:
пусть идентификатор становится переменной. Удалите ключевое слово 'final'. Код выглядит следующим образом:
class Test {
private static Logger LOGGER;
public Test() {
LOGGER = Logger.getLogger(getClass().getSimpleName());
}
}
Достаточно ключевого слова 'private', еслиВы не хотите, чтобы другие классы обращались к нему.
Попробуйте динамический прокси Java.это может изменить класс во время выполнения Java.
Код счастливый ~
Добро пожаловать, чтобы поговорить со мной ~