Я ищу способ поддерживать по-настоящему глобальную переменную на Java, которая действительна для всего экземпляра JVM.Поистине глобальное состояние в Java, «более глобальное», чем «статическое»?
Если я просто использовал поле static
где-то, it will fail, если класс, содержащий поле, загружается несколько раз разными загрузчиками классов.
Я могу придумать некоторые неприятные способы решения этой проблемы, такие как использование только стандартных классов JDK (которые обычно должны быть загружены одним и тем же загрузчиком классов) или просить пользовательский MBean сохранить глобальное состояние, но это похоже на взламывает меня.
Отказ от ответственности: Я знаю, что глобальное состояние плохое, и да, я избегаю его, когда могу. Promise.
Если ничего другого, то для моего собственного горящего любопытства, пожалуйста, объясните пример использования. – chrylis
Используйте 'enum'. Обратите внимание, что вы хотите, чтобы на самом деле это скорее «un OO». –
@BoristheSpider Решение enum имеет ту же проблему, что и решение статического поля. – chrylis