首页 > 解决方案 > 空值检查与 findFragmentByTag 中的 Objects.requireNonNull

问题描述

由于我一直在 Android 中进行空检查findFragmentByTag(),因此代码检查建议我添加Objects.requireNonNull()方法。当我应用此检查时,代码检查不再发出警告。那么哪个更好呢?

我已经完成了这个SO Question。根据我的理解(我可能错了),无论如何都会抛出NullPointerException 。

           //3. Hide analytics fragment
            //if (fragmentManager.findFragmentByTag(TAG_ANALYTICS_FRAGMENT) != null) {
                ft.hide(Objects.requireNonNull(fragmentManager.findFragmentByTag(TAG_ANALYTICS_FRAGMENT)));
            //}
            //4. Hide settings fragment
            if (fragmentManager.findFragmentByTag(TAG_SETTINGS_FRAGMENT) != null) {
                ft.hide(fragmentManager.findFragmentByTag(TAG_SETTINGS_FRAGMENT));
            }

标签: javaandroidnullpointerexception

解决方案


来自Objects.requireNonNull Javadoc

此方法主要用于在方法和构造函数中进行参数验证

也就是说,使用它的好处是您的代码可以从显式if空检查导致的一些噪音中解放出来。


推荐阅读