Kotlin中的RequireActivity()和requireContext()

requireactivityrequireContextactivityfragment的用途是什么。

gejiayin 回答:Kotlin中的RequireActivity()和requireContext()

查看官方的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;
    }
,

因为它们可能为null。在Java中,您可以要求它们。但是在Kotlin中,它们被声明为可为空的返回类型。因此,您有3个选择:

  1. 您不确定它是否为null: 活动?.let {//做您需要做的事。}
  2. 您确定它不会为null,因此您可以调用activity !!。doSomething,但它很难看。
  3. 这是最干净的选项,您可以确定它不会为null,但如果某种原因,它将为此准备一个特定的异常(IllegalStateException),并且将引发该异常,而不是泛型NullPointerException。
本文链接:https://www.f2er.com/3166826.html

大家都在问