在 onCreateView 和 onCreatedView 中使用 nullable

Use of nullable in onCreateView and onCreatedView

我有两个片段 类 说 A 和 B 和一个主要活动 class.I 看了一些教程并添加了回收器视图(虽然这不是主要问题)。跟进我的教程两个片段 类 我有这个代码

@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的东西。可以有人让我明白这一点吗? 请不要费心谈论回收站视图,因为我已经添加了它。

@Nullable 允许具有空值的变量作为参数。而在方法的情况下,允许被调用的方法 return 一个空值。有关更多信息,请查看以下 answer.

The @Nullable annotation indicates a variable, parameter, or return value that can be null 你有过 "NullPointerException" 吗?那是因为值为空。

Integer x; 

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

@Nullable Bundle savedInstanceState

在这种情况下,捆绑包可能没有存储任何内容。所以方法调用的时候为null也无妨。

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

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

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

None 次注释运行 次。它们只是为了指导您生成更高质量的代码。