1 @JvmOverloads
為了解決java不能重載kotlin有默認(rèn)參數(shù)的方法


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

2 @JvmStatic、@JvmField
為了解決在java中不能直接調(diào)用kotlin中的靜態(tài)方法和靜態(tài)變量


如果需要在JAVA中也直接類名.調(diào)用靜態(tài)方法和變量的話需要加上注解


3 @JvmName
這個(gè)注解可以改變字節(jié)碼中生成的類名或方法名稱,如果作用在頂級(jí)作用域(文件中),則會(huì)改變生成對(duì)應(yīng)java類的名稱,如果作用在方法上,則會(huì)改變生成對(duì)應(yīng)JAVA方法的名稱。

可以看到第一個(gè)注解@file:JvmName("TanTestKt")的作用是使生成的類名變?yōu)門anTestKt
第二個(gè)注解的作用是使生成的方法名稱變?yōu)門anMain