“@nullable@org.jetbrains.annotations.nullable intent data”做什么?它有必要吗?

mec1mxoz  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(522)

我得到了一个自动生成的覆盖,如下所示:

@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable @org.jetbrains.annotations.Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
    }

这个 @Nullable @org.jetbrains.annotations.Nullable Intent data 这个部分看起来很奇怪,我不确定它是否有必要存在。安卓工作室需要什么 @org.jetbrains.annotations.Nullable 正常运作?

v440hwme

v440hwme1#

不,不需要添加 @Nullable 此方法中的注解。这只是为了让程序员知道 data 可以是 null 在某一点上。如果添加 @Nullable 如果不检查它是否为null,编译器可能会警告您可能会得到 NullPointerException .

编辑

也许这个 Annotating Type Arguments And Type Parameters 帮助您理解差异(这只适用于kotlin)
还有两种类型:
1.- Jetbrains Annotations 2.- Android Annotations 但大致上是因为,如果你使用jetbrains,它会在IntelijIDE上警告你,例如,如果你通过终端运行lint代码,它不会警告你,而android版本即使你在管道、lint等上运行它,它也会警告你。
因此,也许最好使用 androidx.annotation.Nullable 相反,这更准确。

相关问题