Android 在onCreateView和onCreatedView中使用nullable

Android 在onCreateView和onCreatedView中使用nullable,android,android-fragments,android-viewpager,android-tablayout,tabactivity,Android,Android Fragments,Android Viewpager,Android Tablayout,Tabactivity,我有两个fragments类,比如A和B,还有一个mainactivity类。我看了一些教程并添加了recycler视图(虽然这不是主要问题)。在这两个fragments类的教程之后,我有以下代码 @Nullable @Override public View onCreateView (LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState){ Vi

我有两个fragments类,比如A和B,还有一个mainactivity类。我看了一些教程并添加了recycler视图(虽然这不是主要问题)。在这两个fragments类的教程之后,我有以下代码

@Nullable
@Override
public View onCreateView (LayoutInflater inflater, @Nullable 
    ViewGroup container, @Nullable Bundle savedInstanceState){
    View rootView = inflater.inflate(R.layout.absent, container, false);
    return rootView;  
}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);  
}
那么
@Nullable
在这里有什么用呢?我已经搜索了很多次了,但我不明白它的用途,甚至那个教程也没有提到任何关于
@nullabe
的内容。有人能让我明白这一点吗?
请不要费心谈论recycler视图,因为我已经添加了它。

@Nullable允许使用null值作为参数的变量。在方法的情况下,允许被调用的方法返回空值。有关详细信息,请签出以下内容。

@Nullable允许使用空值作为参数的变量。在方法的情况下,允许被调用的方法返回空值。有关更多信息,请查看以下内容。

您是否收到过“NullPointerException”?这是因为该值为null

Integer x; 
“x”将为null,因为您尚未为其赋值,因此使用它时会出现错误。但是,如果您有一个在某些用例中可能实际为空的变量,该怎么办?好吧,您可以使用@Nullable注释,这意味着可以为null

@Nullable Bundle savedInstanceState
在这种情况下,包中可能没有存储任何内容。因此,调用该方法时可以为null

onCreateView()方法也是如此,这意味着返回值可以为null

您是否得到过“NullPointerException”?这是因为该值为null

Integer x; 
“x”将为null,因为您尚未为其赋值,因此使用它时会出现错误。但是,如果您有一个在某些用例中可能实际为空的变量,该怎么办?好吧,您可以使用@Nullable注释,这意味着可以为null

@Nullable Bundle savedInstanceState
在这种情况下,Bundle可能没有存储任何东西。因此,调用该方法时可以为null


onCreateView()方法也是如此,这意味着返回值可以为null。它是一个编译时注释,告诉编译器(和您)传入的参数可以为null。因此,您需要能够处理该场景。它还可以用于其他代码分析器,以帮助分析代码并发现潜在错误

另一方面,还有
@NonNull
注释,说明该方法不接受或处理
null
对象。因此,如果要使用它,如果传入null对象,LINTer将生成警告或错误


在运行时没有这些注释。它们只是用来指导您生成更高质量的代码。

这是一个编译时注释,告诉编译器(和您)传入的参数可以为空。因此,您需要能够处理该场景。它还可以用于其他代码分析器,以帮助分析代码并发现潜在错误

另一方面,还有
@NonNull
注释,说明该方法不接受或处理
null
对象。因此,如果要使用它,如果传入null对象,LINTer将生成警告或错误

在运行时没有这些注释。它们只是用来指导您生成更高质量的代码