是否可以序列化/反序列化枚举?



假设我定义以下内容:

object Numbers extends Enumeration {
val One = Value(1)
val Two = Value(2)
val Three = Value(3)
}

我希望能够存储此值(理想情况下为字符串,但 Int 可以(。假设我执行以下操作:

val x = Test.Two
val s = x.toString
val i = x.id

那么有没有办法恢复这个值呢?

val y = ??? // Restore from either s or i

你可以使用Name函数

object Numbers extends Enumeration {
val One = Value(1)
val Two = Value(2)
val Three = Value(3)
}
val name = Numbers.Two.toString
val restoredValue = Numbers.withName(name)

但如果值具有字符串类型,则无法正常工作...另一种方式是通过ID

val saved = Numbers.Two.id
val list = Numbers.values.toArray
val restored = list(saved)

最新更新