Kotlin: нельзя использовать const val из объекта-компаньона во внешнем классе enum - PullRequest
1 голос
/ 21 октября 2019

У меня есть класс перечисления Kotlin , определенный следующим образом:

enum class EnumClass(val string: String) {

    VALUE_A(A), // [1]

    VALUE_B(B); // [2]

    companion object {

        const val A = "A"

        const val B = "B"
    }
}

, и компилятор выдает мне следующие ошибки в строках [1] и [2] :

Variable 'A' must be initialized
Variable 'B' must be initialized

Я могу решить эту ошибку, распаковав константы на верхний уровень исходного файла, но мне не нравится это решение. Есть ли другой способ обойти эту проблему?

1 Ответ

2 голосов
/ 21 октября 2019

Я смог заставить это работать, полностью квалифицировавшись A и B:

enum class EnumClass(val string: String) {
    VALUE_A(EnumClass.A), 
    VALUE_B(EnumClass.B); 

    companion object {
        const val A = "A"
        const val B = "B"
    }
}
...