这是一个普遍的问题.假设我有一个用kotlin编写的扩展函数,它将DP转换为PX并返回一个NonNull Int
fun Int.toPx() { /** implementation */ }
Run Code Online (Sandbox Code Playgroud)
java中的函数看起来像这样
public int toPx(int $receiver) { /** implementation */ }
Run Code Online (Sandbox Code Playgroud)
在我看来,这$receiver使得Java-interop感觉生成和不受欢迎.
我知道你可以使用@JvmName注释和一些组合@file:JvmName来改变java中的名字.
当我尝试使用@JvmName与receiver网站的目标,它说
"此注释不适用于目标type usage和使用站点目标@receiver"
有没有办法克服这一点并改变接收器的名称,如果不是最好的选择.