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

用Kotlin编写的Android库,提供对Java应用程序的支持,java,android,kotlin,language-interoperability,Java,Android,Kotlin,Language Interoperability,我正在Kotlin编写一个Android库。但在用Java编写的Android应用程序中使用时,支持非常差。例如,Kotlin中的默认参数在Java中仍然是必需的。另一个是,非null参数在Kotlin应用程序中不接受null(编译时错误),但在Java中传递null时抛出运行时异常。我知道空检查,但它们会让代码看起来脏兮兮的 支持Android Java应用程序的正确方式是什么?欢迎提供指导、建议和示例。谢谢。当函数具有默认参数时,您可以使用@JvmOverloads注释为Java用户创建单独

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


支持Android Java应用程序的正确方式是什么?欢迎提供指导、建议和示例。谢谢。

当函数具有默认参数时,您可以使用
@JvmOverloads
注释为Java用户创建单独的方法。Kotlin中还有更多类似的Java支持增强。这是一张你能做什么的清单

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


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

感谢您的建议。“有没有这种做法的汇编?”Ryan在我的回答中添加了一个链接。看一看