Почему мы получаем странное имя метода при вызове объекта kotlin из Java? - PullRequest
0 голосов
/ 27 февраля 2019

В kotlin у меня есть класс, который был преобразован в объект, и теперь, когда я вызываю его из java, к имени метода добавляется $ app.Что это значит?

Kotlin

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

Java

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

1 Ответ

0 голосов
/ 27 февраля 2019

Вы получаете этот постфикс из-за модификатора видимости internal, который делает свойство видимым только внутри его модуля (app) при использовании его из Kotlin.

Нет такой видимости вJava / на уровне байт-кода, поэтому вместо этого идентификатор «искажается» этим постфиксом, который должен сигнализировать клиентам Java, что им не следует его использовать, по крайней мере, если они не уверены, что знают, что ониделаешь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...