在Kotlin中直接引用enum实例而没有类

Jul*_* A. 8 enums kotlin

在Kotlin中,当E与我使用其实例的代码位于同一文件中时,我无法直接引用枚举的实例:

enum class E {
    A, B
}
Run Code Online (Sandbox Code Playgroud)

我想做的事:

val e = A    
Run Code Online (Sandbox Code Playgroud)

我可以做什么:

val e = E.A
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Rya*_*ert 8

是的,这是可能的!

在Kotlin中,枚举实例可以像大多数其他东西一样导入,因此假设枚举类E在默认包中,您只需添加import E.*到想直接使用其实例的源文件的顶部.例如:

import E.*
val a = A // now translates to E.A
Run Code Online (Sandbox Code Playgroud)

每个实例也可以单独导入,而不是仅导入枚举中的所有内容:

import E.A
import E.B
//etc...
Run Code Online (Sandbox Code Playgroud)

即使在同一文件中声明枚举,这也有效:

import E.*
enum class E{A,B}
val a = A
Run Code Online (Sandbox Code Playgroud)