【发布时间】:2015-07-18 08:41:38
【问题描述】:
按照the documentation,我创建了一个枚举类:
enum class BitCount public constructor(val value : Int)
{
x32(32),
x64(64)
}
然后,我尝试在某个函数中声明一个变量:
val bitCount : BitCount = BitCount(32)
但是有编译错误:
错误:(18, 29) Kotlin: 枚举类型不能被实例化
如何声明一个 BitCount 类型的变量并从 Int 初始化它?
【问题讨论】:
-
顺便说一句,对于简单的情况,您不必使用完整的构造函数语法,因此
constructor这个词是多余的。只需public enum class BitCount(..)即可完成 -
如果你仍然想创建一个给定数值的 Enum 的实例,你可以(但它更“找到给定数值的实例”):stackoverflow.com/a/34625163/3679676
-
适合新手。阅读这篇关于 Kotlin 枚举的教程。 developine.com/enum-classes-in-kotlin-example
-
所有枚举常量都必须在枚举类定义中声明。您正在尝试做的(创建对象)是针对常规类,而不是 ENUM。有关 Kotlin 枚举的示例,请参阅 tutorialkart.com/kotlin/enum-classes-in-kotlin。