在Java中调用Kotlin类的参数默认值对应的重载问题

嘎子 Android, Kotlin 2017-06-02 1,535 次浏览 , , 没有评论

现在Android Studio中原生支持Kotlin了,全我们之前的项目一般都是用Java写的,所以在Android Studio中经常会遇到Java与Kotlin交互的问题。

在使用Java调用Kotlin时,多数行为都是和我们对Kotlin的预期是一样的,对于我来说,有一点让我比较费解:那就是在Kotlin写一个有默认参数值的方法,在 Java 中只会有一个所有参数都存在的完
整参数的方法可见。

但Kotlin也给我们提供了一个注解:@JvmOverloads,使用这个注解后Kotlin就会向 Java 调用者暴露多个重载。

如我们在Kotlin中写如下函数:

相当于在Java中如下声明:

默认参数不会起到任何作用。

如果使用@JvmOverloads注解:

相当于在Java中如下声明:

效果非常明显吧。

该注解也适用于构造函数、静态方法。如Kotlin中的data类–为数据而生,为数据而美中的Person类可以改为:

这样就能按照自己的连接Java和Kotlin了吧。

原创文章,转载请注明: 转载自TsonTec:测量解决方案提供者

本文链接地址: 在Java中调用Kotlin类的参数默认值对应的重载问题

相关主题

说点什么

您将是第一位评论人!

提醒
avatar
wpDiscuz
回顶部