当从包中检索传递的参数时,为什么 Android Studio 会发出警告并建议使用 requireArguments() 而不是参数!!?

Var*_*d G 5 android android-fragments android-navigation

因此,就像标题所说,我正在尝试根据我正在使用的文档从包中检索传递的参数var args = GameWonFragmentArgs.fromBundle(arguments!!)。但Android Studio建议使用以下代码: var args = GameWonFragmentArgs.fromBundle(requireArguments())

我查找了 Fragment 的 Android 文档,发现它requireArguments()返回 @NonNull Bundle 或 IllegalStateException。为什么Android Studio建议使用它,两者有什么区别?

另外,我找不到有关 的相关文档fromBundle()

sas*_*mar 5

androidx.fragment:fragment 中有一些 api 更改

requireArguments() --- 返回 @NonNull Bundle 或抛出 IllegalStateException 的方法。

fromBundle(arguments!!) --- 这些情况 App 可能会因为空指针异常而崩溃。如果参数为空,应用程序将崩溃。

  • 好的,谢谢!IllegalStateException 不会也会导致崩溃吗?那么它如何更好呢?您知道有关 ````fromBundle()```` 的任何文档吗 (3认同)