我有这个配置类:
public class ShiroConfiguration {
private final boolean enabled = false;
public boolean isEnabled() {
return enabled; // ****
}
显然,错误在于我将启用标志设置为“final”,因此它只能是 false。
在运行时,我试图找出为什么我的配置未启用,因此在调试器(在 IntelliJ 中)中运行代码,并在星号行上设置了断点。调试器显示启用的值为“true”,但此方法肯定返回值“false”。
为什么调试器会看到对象的错误版本?
我无法理解这怎么可能。这是 IntelliJ 中的错误,还是 Java 调试界面中的错误?
==============
这是我在调试器中在调用 config.isEnabled() 的行上的断点处看到的内容:
最佳答案
如果您在调用该方法时没有犯任何错误,即调用不同类的方法,那么这肯定看起来是调试器中的错误。调试器似乎暂时忽略了程序中的final
关键字。只需尝试暂时删除 final
关键字,看看是否是这种情况。
关于java - Intellij 调试器 : true becomes false, 发生了什么事...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36197452/