3
在科特林,我无法引用枚举的情况下,直接当E是在同一文件中,我使用它的实例代码:参考枚举实例,而类科特林
enum class E {
A, B
}
什么我想做的事:
val e = A
我能做些什么:
val e = E.A
这可能吗?
在科特林,我无法引用枚举的情况下,直接当E是在同一文件中,我使用它的实例代码:参考枚举实例,而类科特林
enum class E {
A, B
}
什么我想做的事:
val e = A
我能做些什么:
val e = E.A
这可能吗?
在Kotlin中,枚举实例可以像大多数其他东西一样导入,因此假设枚举类E位于默认包中,您可以将import E.*
添加到想要直接使用其实例的源文件的顶部。例如:
import E.*
val a = A // now translates to E.A
每个实例也可以单独进口的,而不是在枚举只导入了一切:
import E.A
import E.B
//etc...
这也适用即使枚举在同一文件中声明:
import E.*
enum class E{A,B}
val a = A
有趣......因此,我遇到的问题必须是因为枚举与我想要使用它的*相同*文件中。我会更新问题以包含此限制。 –
编译器在我尝试使用同一个文件片段时抱怨。它说'未解决的参考:E'。 –
对我来说,这段代码是有效的。你可以在这里在线编译器试试它:https://try.kotlinlang.org - 你的枚举可能没有在默认包的顶层声明?例如,如果枚举E在包p的C类中声明,则需要'import p.C.E. *'(即使对于同一文件导入) –