2011-10-17 114 views
0

我真的被這個難住:執行跳過行

代碼執行從第07行跳到第10行。什麼是Java?跳過08行和「通過」if語句?

01 public String getContainerNameFromUID(Activity aActivity, Long aUID, String aDefault){ 
02  if(aUID != null){ 
03   Cursor containerCursor; 
04   containerCursor = fetchContainer(aUID); 
05   aActivity.startManagingCursor(containerCursor); 
06   int i = containerCursor.getColumnIndexOrThrow(KEY_NAME); 
07   String test =containerCursor.getString(i); 
08   return test; 
09  }else{ 
10   return "Null"; 
11  } 
12 } 
+1

你在調試器中看到執行「跳躍」嗎?因爲這通常意味着調試有問題,例如,編譯後的Java與源代碼版本不同,所以行號不對齊。 –

回答

1

您的編譯器可能優化了代碼以避免冗餘的本地作用域分配。

+0

謝謝你們,看起來沒錯。瀏覽eclipse中的代碼,看起來代碼執行跳到最後一個return語句,但這是一種錯覺。我想這是因爲編譯器優化。代碼工作正常; **測試**正在退回,而不是「空」。 – user999727