从Java调用kotlin对象时,为什么会得到一个奇怪的方法名?

时间:2019-02-27 11:42:17

标签: java android kotlin

在kotlin中,我有一个已转换为对象的类,现在当我从java调用它时,方法名称将附加$ app。这是什么意思?

科特林

object SomeObject {
    internal val standardRetroService: WebPredictionService
        get() = getCustomBaseRetroService(CloudUtil.doStuff)
}

Java

SomeObject.INSTANCE.getStandardRetroService$app().dostuff();

1 个答案:

答案 0 :(得分:3)

由于internal可见性修饰符而使您获得该后缀,当从Kotlin使用属性时,该修饰符仅使属性在其模块(app)中可见。

在Java /字节码级别上没有这种可见性,因此标识符与此后缀“混为一谈”,这应该向Java客户端发出信号,至少他们不应该使用它如果他们不确定他们知道自己在做什么。