Почему сопутствующий объект помещает константные значения в родительский класс? - PullRequest
1 голос
/ 02 декабря 2019

У меня есть класс в Kotlin:

class AClass {
    companion object {
        const val CONST_VAL = "THIS IS A CONST VAL STRING"
        val JUST_VAL = "THIS IS A NON-CONST VAL STRING"

        fun aFunction() {}
    }
}

и основной класс в Java, который обращается к сопутствующим членам:

public class Main {
    public static void main(String[] args) {
        // aFunction can only be accessed by using Companion
        AClass.Companion.aFunction();
        // CONST_VAL can only be accessed from the parent class
        String constValString = AClass.CONST_VAL;
        // JUST_VAL can only be accessed with Companion
        String valString = AClass.Companion.getJUST_VAL();
    }
}

Как в Java оба #aFunction()и JUST_VAL доступен только через Companion, а CONST_VAL может быть доступен только через родительский класс напрямую? Разве к CONST_VAL нельзя обращаться только через Companion?

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