Intellij调试器:true变为false,发生了什么......?

时间:2016-03-24 10:00:36

标签: java debugging intellij-idea

我有这个配置类:

public class ShiroConfiguration {
  private final boolean enabled = false;

    public boolean isEnabled() {
      return enabled; // ****
    }

显然,错误在于我制作了启用旗帜' final',所以它永远不会是虚假的。

在运行时,我试图弄清楚为什么我的配置没有启用,所以在调试器中运行代码(在IntelliJ中),在星号行上设置断点。调试器显示启用了值' true'但是这个方法肯定会返回值' false'。

为什么调试器会看到不正确的对象版本?

我无法理解这是如何可能的。它是IntelliJ中的错误,还是Java调试界面中的错误?

==============

以下是我在调试器中在调用config.isEnabled()的行的断点处看到的内容:

enter image description here

1 个答案:

答案 0 :(得分:0)

如果你在调用方法时没有犯任何错误,即称为不同类的方法,这肯定是调试器中的一个错误。调试器似乎暂时忽略了程序中的final关键字。只需尝试删除final关键字一会儿,看看是否是这种情况。