【问题标题】:Android library written in Kotlin, provide support for Java apps用 Kotlin 编写的 Android 库,提供对 Java 应用程序的支持
【发布时间】:2017-07-06 18:32:15
【问题描述】:
我正在用 Kotlin 编写一个 Android 库。但是在用 Java 编写的 Android 应用程序中使用时,支持很差。例如,Java 中仍然需要 Kotlin 中的默认参数。另一种是,非空参数在 Kotlin 应用程序中不接受空值(编译时错误),但在 Java 中传递 null 时会引发运行时异常。我知道空检查,但它们使代码看起来很脏。
支持 Android Java 应用程序的正确方法是什么?欢迎指导,建议,示例。谢谢。
【问题讨论】:
标签:
java
android
kotlin
language-interoperability
【解决方案1】:
当函数具有默认参数时,您可以使用 @JvmOverloads 注释为 Java 用户创建单独的方法。 Kotlin 中也有更多类似的对 Java 支持的增强。 Here 列出了你可以做什么。
您还可以在局部变量和字段上使用 @Nullable 和 @NotNull 注释来改进 IDE 对可空值的支持(编译器更有可能在编译时而不是运行时失败)。
当您使用 @NotNull 注释时,IntelliJ Idea 会自动为您生成不 null 检查。