Scala Enumeration Data As String?

时间:2017-02-01 07:51:19

标签: scala

Scala中的枚举数据类型可以实现为String

enum Currency {CAD, EUR, USD }

在Java而不是

object Currency extends Enumeration {

  val CAD, EUR, USD = Value
}

哪个数据值是二进制?

我在Java和Scala中都编写了相同的功能。枚举数据保存到数据库中。 Java版本与String值很好地兼容,但不适用于二进制数据的Scala版本。

2 个答案:

答案 0 :(得分:1)

你可以这样做:

object Currency extends Enumeration {
  type Currency = String
  val CAD = "CAD"
  val EUR = "EUR"
  val USD = "USD"
}

然后每个的基础类型都是实际的String

答案 1 :(得分:1)

您可以尝试使用toString。

Currency.Cad.toString() == "Cad"
Currency.withName("Cad") == Currency.Cad

此外,如果您希望选择可读的格式,则可以选择字符串

object Currency extends Enumeration {
    val CAD = Value("Canedian Dollar")
    val EUR, USD = Value
}

有关完整信息,请参见this blog post