【发布时间】:2013-12-23 14:56:42
【问题描述】:
我刚刚遇到了一些违背我对逻辑理解的事情。怎么会出现以下情况?
我已经尝试了所有常用的方法来解决这个问题;清理/构建,重新启动 netbeans 等,但问题仍然存在。无论我做什么,变量complete 总是正确的。我什至分别用true 和false 布尔值替换了left 和right,但没有变化。起作用的是对变量进行重构重命名,但是当我将其改回原来的值时,问题又出现了。没有以相同方式命名的班级成员。
发生了什么事?我终于失去理智了,还是该变量的值应该是false?
这适用于 Windows 上的 Netbeans 7.3.1。
编辑01
当我在一周左右的时间内可以使用我的工作计算机时,我会尝试向不信的人证明这确实发生了。与此同时,相信我的话。这不是恶作剧,也不是因为我缺乏使用 Netbeans 进行调试的知识。
我确实记得在此之前执行了一堆 svn switch-to-copy 命令,但不是针对此代码所在的项目(依赖项)。无论如何,一个干净/构建应该已经处理了任何不一致。我也不记得清除 Netbeans 缓存,我现在对此感到遗憾。
编辑02
讨厌的人会讨厌,但正如我担心的那样,回到我的工作站后,我无法再重现这个问题。承认这一点让我很生气,但我没有任何证据证明这曾经发生过。我所做的只是:将我的电脑从休眠中唤醒,取消对变量的重构重命名,这是我在完成工作之前所做的最后一件事,清理/构建,然后再运行一次调试。一切都刚刚好。
【问题讨论】:
-
美丽,简直美丽。 java不知道如何进行布尔运算...
-
不,HighCore 是正确的。该程序相应地行为不端,@ikegami。
-
出于好奇,代码是否进入了下面的
if块?complete是true和context.isEmpty()是false。 -
这要么是一个糟糕的 Photoshop 笑话,要么你在调试时修改了代码......
-
仅仅因为您在调试器中在第 527 行停止时修改了左/右并不意味着再次执行第 525 行。将断点放在第 525 行,让我们看看值的含义。