【发布时间】:2021-08-13 07:30:41
【问题描述】:
Fragment中的requireActivity()和requireContext()的用途是什么?
【问题讨论】:
-
你能更清楚地解释你的问题吗
标签: android kotlin android-fragments
Fragment中的requireActivity()和requireContext()的用途是什么?
【问题讨论】:
标签: android kotlin android-fragments
因为它们可能为空。在java中,你可以调用它们。但在 Kotlin 中,它们被声明为可为空的返回类型。所以你有 3 个选择:
【讨论】:
requireActivity(). 和!!. 之间的区别,因为它们都会抛出异常,而您作为程序员必须追赶它们。 !!. 对我来说看起来不那么难看。它已经内置在 kotlin 中。
requireActivity. 只是一个偷偷摸摸的!!.。
查看官方 Android 源代码文档。这些方法返回带有空检查的活动/上下文。
requireActivity()
public final FragmentActivity requireActivity() {
FragmentActivity activity = getActivity();
if (activity == null) {
throw new IllegalStateException("Fragment " + this + " not attached to an activity.");
}
return activity;
}
requireContext()
public final Context requireContext() {
Context context = getContext();
if (context == null) {
throw new IllegalStateException("Fragment " + this + " not attached to a context.");
}
return context;
}
【讨论】: