我有这个配置类:
public class ShiroConfiguration {
private final boolean enabled = false;
public boolean isEnabled() {
return enabled; // ****
}
显然,错误在于我制作了启用旗帜' final',所以它永远不会是虚假的。
在运行时,我试图弄清楚为什么我的配置没有启用,所以在调试器中运行代码(在IntelliJ中),在星号行上设置断点。调试器显示启用了值' true'但是这个方法肯定会返回值' false'。
为什么调试器会看到不正确的对象版本?
我无法理解这是如何可能的。它是IntelliJ中的错误,还是Java调试界面中的错误?
==============
以下是我在调试器中在调用config.isEnabled()的行的断点处看到的内容:
答案 0 :(得分:0)
如果你在调用方法时没有犯任何错误,即称为不同类的方法,这肯定是调试器中的一个错误。调试器似乎暂时忽略了程序中的final
关键字。只需尝试删除final
关键字一会儿,看看是否是这种情况。