1 @JvmOverloads
为了解决java不能重载kotlin有默认参数的方法
所以需要在kotlin方法上添加@JvmOverloads,加上后就是正常的了
2 @JvmStatic、@JvmField
为了解决在java中不能直接调用kotlin中的静态方法和静态变量
如果需要在JAVA中也直接类名.调用静态方法和变量的话需要加上注解
3 @JvmName
这个注解可以改变字节码中生成的类名或方法名称,如果作用在顶级作用域(文件中),则会改变生成对应java类的名称,如果作用在方法上,则会改变生成对应JAVA方法的名称。
可以看到第一个注解@file:JvmName("TanTestKt")的作用是使生成的类名变为TanTestKt
第二个注解的作用是使生成的方法名称变为TanMain