【发布时间】:2021-07-29 12:57:47
【问题描述】:
kotlin_version = '1.2.30'
我有一个 sqlite 表,其中有一个名为方向的列的整数值。这将根据枚举常量存储 Integer 属性。
即将40插入表中:
saveDirection(Direction.Right.code)
我有一个用 kotlin 编写的枚举类,并分配了属性常量。
enum class Direction(val code: Int) {
UP(10),
DOWN(20),
LEFT(30),
RIGHT(40),
NONE(0)
}
我想知道是否可以对密封类做同样的事情
sealed class Direction {
abstract val code: Int
data class Up(override val code: Int): Direction()
data class Down(override val code: Int): Direction()
data class Left(override val code: Int): Direction()
data class Right(override val code: Int): Direction()
data class None(override val code: Int): Direction()
}
但是,这不起作用,因为 saveDirection(direction: Int) 需要一个 Int 值:
saveDirection(Direction.Right(40))
是否可以将常量属性分配给密封类,以便您可以像在枚举中一样获取常量属性?
感谢您的任何建议,
【问题讨论】:
-
为什么要用密封类替换你的枚举?
-
是的,我希望将状态保存在 sqlite 表中。并且希望有一个与每个状态相关联的属性常量,这将是 sqlite 表中的 Int 值
标签: kotlin