【发布时间】:2018-05-26 07:55:45
【问题描述】:
这是一个普遍的问题。 假设我有一个用 kotlin 编写的扩展函数,它将 DP 转换为 PX 并返回一个 NonNull Int
fun Int.toPx() { /** implementation */ }
java中的函数看起来像这样
public int toPx(int $receiver) { /** implementation */ }
在我看来,$receiver 让 Java 互操作感觉生成且不受欢迎。
我知道您可以使用@JvmName 注释与@file:JvmName 等一些组合来更改java 中的名称。
当我尝试将@JvmName 与receiver 站点目标一起使用时,它会说
“此注解不适用于目标type usage,使用站点目标@receiver”
有没有办法克服这个问题并更改接收者的名称,如果没有,最好的选择是什么。
【问题讨论】:
标签: java kotlin kotlin-interop java-interop