Можно ли сериализовать / десериализовать перечисление? - PullRequest
0 голосов
/ 07 января 2020

Скажем, я определила следующее:

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

1 Ответ

2 голосов
/ 07 января 2020

вы можете использовать с функцией 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)

, но это не сработает, если значения имеют тип String ... другой путь - через id

val saved = Numbers.Two.id
val list = Numbers.values.toArray
val restored = list(saved)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...