У меня есть этот конфигурационный класс:Intellij debugger: true становится ложным, что происходит ...?
public class ShiroConfiguration {
private final boolean enabled = false;
public boolean isEnabled() {
return enabled; // ****
}
Очевидно, что ошибка состоит в том, что я сделал с поддержкой флага «окончательным», поэтому он никогда не может быть ничего, кроме ложного.
Во время выполнения я пытался выяснить, почему моя конфигурация не включена, поэтому запустил код в отладчике (в IntelliJ) с точкой прерывания на выделенной строке. Отладчик показал, что enabled имеет значение «true», но этот метод определенно возвращает значение «false».
Почему отладчик может видеть неправильную версию объекта?
Я не могу понять, как это возможно. Это ошибка в IntelliJ или в интерфейсе отладки Java?
==============
Вот что я вижу в отладчике в контрольной точке на линии, которая вызывает config.isEnabled():
1. Некоторые программы имеют ошибки. 2. Все отладчики - это программы. – dasblinkenlight
Кажется, что-то сообщать напрямую [JetBrains] (https://youtrack.jetbrains.com/oauth?state=%2Fissues%2FIDEA). –
Вы проверили в отладчике, что экземпляр, где вы достигли точки разрыва, является вашим классом? Возможный сибо - это перенос вашего класса конфигурации в другой класс, который, вероятно, перезаписывает вас. –