`@Nullable@org.getbrains.annotations.Nullable Intent数据`做什么?有



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

@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才能正常工作?

否,不需要在此方法中添加@Nullable注释。这只是为了让程序员知道data在某个时刻可能是null。这对编译器也很有帮助,如果添加@Nullable而不检查它是否为null,编译器可能会警告您可能会得到NullPointerException

编辑

也许这个Annotating Type Arguments And Type Parameters可以帮助你理解其中的区别。(这仅适用于kotlin(

还有两种类型:

1.-Jetbrains Annotations

2.-Android Annotations

但大致是因为,如果你使用jetbrains,它会在intellIJIDE上警告你,例如,如果你通过终端运行lint代码,它不会警告你,而安卓系统则会警告你,即使你在管道、lint等上运行它。

因此,也许最好使用androidx.annotation.Nullable,这更准确。

相关内容