Eclipse对于编写Java程序非常棒,但今天我发现,欺骗像我这样的新编码员是很棒的。 @ _ @eclipse的检查功能让我像个假人一样,为什么在调试时看起来很棘手?
我写的一个片段如下,
public static void main(String[] args) {
for(int i=0;i<3;i++){
System.out.println("i = " + i);
}
}
然后我在的行添加一个断点“......是System.out.print”,单击“调试”按钮,进入月食到“调试”的角度并突出显示断点行,然后将光标移到变量“i”上,其值为“0”。然后,我选择“i ++”,然后单击“检查”(或按“Ctrl + Shift + I”)一次,将光标移动到变量“i”上,将其值更改为“1”。我再次重复“检查”,我的值变为“2”......(每次点击“检查”时,它的值将加1)!
为什么会发生这种情况!?我只想看看调试propuse的“我”的价值,不想真正改变它的价值,直到我进入下一个陈述。我认为“检查”以及“显示”仅用于查看变量/表达式,它们不应该影响该值,但在这种情况下,它并不像我所期望的那样工作。
谁能告诉我哪里出了问题?
My eclipse version info:
Version: Indigo Service Release 2
Build id: 20120216-1857
是的,它的行为你说什么,我预计它仅分析“我++”表达一个隔离区域,并返回我的价值,而不是影响的实际价值的“i”,“显示”,似乎行为相同作为“检查”的方式。 – vicd
@vicd但是为了评估一个孤立区域中的表达式,eclipse可能会被迫复制很多可能被改变的值,例如,如果调用一个函数,几乎所有的变量都可能被改变。 – Pablo
em,似乎我们需要注意在表达式和方法上使用“Inspect”/“Display”,因为它可能会导致副作用,这是我们不想要的。例如,如果一个方法“int deposit()”加上用户银行账户余额并返回当前余额,当我“检查”两次时,这将加上余额两次!换句话说,如果使用不当,“检查”是危险的。请纠正我,如果我错了,谢谢。 – vicd