Kotlin中@JvmOverloads、@JvmStatic、@JvmField、@JvmName注解

1 @JvmOverloads

为了解决java不能重载kotlin有默认参数的方法

所以需要在kotlin方法上添加@JvmOverloads,加上后就是正常的了

2 @JvmStatic、@JvmField

为了解决在java中不能直接调用kotlin中的静态方法和静态变量


如果需要在JAVA中也直接类名.调用静态方法和变量的话需要加上注解

3 @JvmName

这个注解可以改变字节码中生成的类名或方法名称,如果作用在顶级作用域(文件中),则会改变生成对应java类的名称,如果作用在方法上,则会改变生成对应JAVA方法的名称。

可以看到第一个注解@file:JvmName("TanTestKt")的作用是使生成的类名变为TanTestKt

第二个注解的作用是使生成的方法名称变为TanMain

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容