![](/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.