Eclipse 非常适合编写 Java 程序,但今天我发现它非常适合欺骗像我这样的新编码员。 @_@
我写了一个片段如下,
public static void main(String[] args) {
for(int i=0;i<3;i++){
System.out.println("i = " + i);
}
}
然后我在“System.out.print....”行添加一个断点,单击“调试”按钮,eclipse 进入“调试”透视图并且断点行被突出显示,然后我移动光标在变量“i”上,它的值如预期的那样为“0”。
然后,我选择“i++”并单击“检查”(或按“Ctrl+Shift+I”)一次,我将光标移到变量“i”上,它的值变为“1”。我又重复了一遍“Inspect”,i的值变成了“2”……(每次点击“Inspect”它的值都会加1)!!
为什么会这样!?我只想查看“i”的值以进行调试,在进入下一条语句之前不想真正更改它的值。我认为“Inspect”和“Display”仅用于查看变量/表达式,它们不应该影响值,但在这种情况下,它不会像我预期的那样工作。
谁能告诉我哪里出了问题?
My eclipse version info:
Version: Indigo Service Release 2
Build id: 20120216-1857
最佳答案
如果您检查一个表达式,eclipse 必须执行该表达式以便您可以获取值。因此,如果您检查 i++
,eclipse 会将 1 添加到 i
。
这样想:如果您检查的不是 i++,而是 myFunction(i)
,您会期望 eclipse 执行函数“myFunction”来获取值吗? i++
也是一样。
关于java - eclipse 的检查功能像个傻瓜一样欺骗我,为什么调试时看起来那么棘手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13307321/