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