Android @NonNull和Jetbrains @NonNull有什么区别?

时间:2018-05-23 10:13:18

标签: java android kotlin annotations

这两个注释之间有什么区别?

  • org.jetbrains.annotations.NonNull
  • android.support.annotation.NonNull

kotlin编译器 IntelliJ是否会尊重 android.support.annotation.NonNull 并添加断言来检查我是否将null参数传递给相应的java函数?

Android lint是否会尊重 org.jetbrains.annotations.NonNull 并在检查已经是NonNull的变量时向我显示警告?

我应该何时使用另一个?

1 个答案:

答案 0 :(得分:4)

使用org.jetbrains.annotations.NonNull IntelliJ IDEA指出合同被违反。仅在使用IDE时完成。

然而

android.support.annotation.NonNull由Lint等检查工具处理。如果您在不使用Android Studio或其他IDE的情况下运行检查(例如,通过命令行或通过Jenkins运行),这将非常有用

修改

基于@user2340612突出显示的documentation Kotlin编译器支持它们。由于它在编译器级别受支持,它也应该在命令行中工作。