这两个注释有什么区别?

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

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

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

    我什么时候应该使用一个?

    最佳答案

    使用 org.jetbrains.annotations.NonNull IntelliJ IDEA 发现契约(Contract)被违反。仅当您使用 IDE 时才完成。


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

    编辑:

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

    10-08 17:55