我得到了一个自动生成的覆盖,如下所示:
@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
正常运作?
1条答案
按热度按时间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
相反,这更准确。