java - Java if() 语句总是假的?
问题描述
在我使用 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 语句。在这种情况下,必须再次触发它才能在更改完成后执行。
推荐阅读
- javascript - Angular2如何切换网络摄像头
- javascript - 如何将嵌套的 JSON 数据结构简化为地图 JavaScript
- javascript - 在 Tree map d3.js 中解析 json 以获得不同的颜色
- docker - 如何限制 docker 容器内存使用
- jmeter - 如何在 Jmeter 中上传 .zip 文件?
- database - 如何在角度的单独组件之间存储和交换大型 Firestore 数据?
- reactjs - 带有 redux 连接的 Typescript 约束
- java - 具有不同对象类型的重复代码
- python - 使用 python + Selenium + Beautiful Soup 查找具有固定字符串的 URL
- php - 从两个表中获取唯一结果或如何通过 ID 减去 laravel 中的两个表