Kotlin:无法在外部枚举类中使用伴随对象的const val

时间:2019-10-21 12:18:03

标签: kotlin enums static kotlin-companion

我有一个这样定义的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

我可以通过将const提取到源文件的顶层来解决此错误,但我不喜欢这种解决方案。还有其他解决方法吗?

1 个答案:

答案 0 :(得分:2)

我能够通过完全合格AB来使它起作用:

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

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