![](/img/trans.png)
[英]The boolean return statement inside a for loop and if statement is always returning false in java
[英]Java if () statement always false?
在我在 Java 中編程的 20 多年里,我從未遇到過如此令人費解的事情。 在以下代碼中:
// Initialize Firebase Auth
mAuth = FirebaseAuth.getInstance();
currentUser = mAuth.getCurrentUser();
if (currentUser == null) {
LoginManager.getInstance().logOut();
LoginFragment loginFragment = new LoginFragment();
FragmentManager manager = getActivity().getSupportFragmentManager();
manager.beginTransaction().replace(R.id.fragment_container, loginFragment, loginFragment.getTag()).commit();
return view;
}
firebase_userID = currentUser.getUid();
我在 if() 語句處設置了一個斷點,當我到達那里時,我將變量 currentUser 設置為 null。 當我恢復執行時,語句 LoginManager.getInstance().logOut() 應該執行,對嗎? 相反,代碼會一直到 if() 之后的行。 為什么會發生這種情況??
是的,在添加 if() 語句后,我確實重建並重新加載了應用程序。 我什至重新啟動了 Android Studio。
根據我的理解和經驗,在調試模式下動態更改代碼時,它會嘗試從給出斷點的點再次運行,以便達到調試目的,您無需再次觸發它。 一旦拋出任何異常或手動完成當前線程執行,它將不會返回到 if 語句。 在這種情況下,必須再次重新觸發它才能在更改完成后執行。
我將 currentUser 的聲明移到 createView() 內部,問題就消失了。 我不明白為什么這會有所不同,特別是因為類似應用程序中的相同代碼沒有這個問題,並且 currentUser 被聲明為全局的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.