用 Kotlin 编写的 Android 库,提供对 Java 应用程序的支持

Posted

技术标签:

【中文标题】用 Kotlin 编写的 Android 库,提供对 Java 应用程序的支持【英文标题】:Android library written in Kotlin, provide support for Java apps 【发布时间】:2017-07-06 18:32:15 【问题描述】:

我正在用 Kotlin 编写一个 android 库。但是在用 Java 编写的 Android 应用程序中使用时,支持很差。例如,Java 中仍然需要 Kotlin 中的默认参数。另一种是,非空参数在 Kotlin 应用程序中不接受空值(编译时错误),但在 Java 中传递 null 时会引发运行时异常。我知道空检查,但它们使代码看起来很脏。

支持 Android Java 应用程序的正确方法是什么?欢迎指导,建议,示例。谢谢。

【问题讨论】:

【参考方案1】:

当函数具有默认参数时,您可以使用 @JvmOverloads 注释为 Java 用户创建单独的方法。 Kotlin 中也有更多类似的对 Java 支持的增强。 Here 列出了你可以做什么。

您还可以在局部变量和字段上使用 @Nullable@NotNull 注释来改进 IDE 对可空值的支持(编译器更有可能在编译时而不是运行时失败)。

当您使用 @NotNull 注释时,IntelliJ Idea 会自动为您生成不 null 检查。

【讨论】:

欣赏建议。是否有一些此类做法的汇编? @Ryan 添加了我的答案的链接。看看吧

以上是关于用 Kotlin 编写的 Android 库,提供对 Java 应用程序的支持的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用与 kotlin 相同的代码库创建一个 android、ios 和 web

我可以使用第三方 Java 库 (.jar) 来使用 Kotlin 进行 Android 开发吗?

用 Kotlin 编写的 MVP+RxJava+Retrofit 黄历 demo

在 Java 项目中使用 Kotlin 库作为依赖项

用Kotlin写Android Gradle脚本

Kotlin将超越Java成为Android开发的第一语言?