In Kotlin, I'm unable to reference the instances of an enum directly when E is in the same file as the code where I use its instances:

enum class E {
    A, B
}

What I want to do:

val e = A    

What I can do:

val e = E.A

这可能吗?

推荐答案

Yes, this is possible!

在Kotlin中,可以像导入大多数其他实例一样导入枚举实例,因此假设enum类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

Kotlin相关问答推荐

Spring Boot Bean验证器未触发

Kotlin编译器如何决定是否可以在任何给定点调用Suspend方法?

为什么不';Kotlin是否在数据类构造函数中隐式分配null值可为null的字段?

合并状态流

将 java Optional 转换为 Kotlin Arrow Option

如何在 Spring Boot 3 中为内部类提供运行时提示

Kotlin 中的as Long和.toLong()有什么区别?

如何使用子变量在 Kotlin 中初始化父级

顶级属性的初始化

在 APK META-INF/library_release.kotlin_module 中复制的重复文件

Anko 中的水平线性布局

使用 Kotlin 创建新目录,Mkdir() 不起作用

Jetpack Compose – LazyColumn 不重组

Kotlin 中的内联构造函数是什么?

如何在协程之外获取 Flow 的值?

如何从kotlin中的类实例化对象

Kotlin中的Memoization功能

如何从协程范围返回值

将字符串编码为Kotlin中的UTF-8

如何判断数据是否插入到房间数据库中