從執行什麼的角度看,我看不到任何功能錯誤,但我只是浪費了一個小時,證明我的代碼和編譯器正在做他們應該做的事。Android Studio調試器突出顯示錯誤的行
考慮以下代碼:
public int getAnswer(int a) {
int retval = 18;
int x = 25;
int y = 50;
while (a-- > 0) {
if (a == 3) {
retval = a;
return retval;
}
}
x = 10;
y = 20;
return 0;
}
與
int theAnswer = getAnswer(6);
斷點調用兩者都含有return
和運行代碼之前,嘗試和預測的結果,因此該行會的行擊中。
正如您可能從我的問題的口氣想象的那樣,突出顯示了錯誤的行,但返回了正確的結果。如果你通過代碼,它跳舞了很多。
是否有任何可以不同配置的方式顯示正確的行? (我使用的是最新的Android Studio,我認爲它可能不穩定,但我確信在Eclipse上我已經看到類似的行爲,但我從未花時間跟蹤它;也許它是一個Java事物) 。
謝謝。恥辱這個dx「優化」不能在調試模式下失調。 –
這不是一個優化。這是Dalvik VM的二進制格式;您無法在Android上直接運行.class文件。 –
不是dx本身;我的意思是它不能創建多個返回指令,就像在源代碼中一樣? –