如何在scala枚举值中添加点

时间:2015-09-16 11:33:29

标签: scala enums scala-2.11

我有以下enum

object TestKeys extends Enumeration{

    type  TestKeys = Value
    val _id , uuid Status.Date= Value
}

我需要在StatusDate之间添加点,但Eclipse不允许我。我做了一些研究和here。我发现DescriptionAttribute中有一个c#,但它在Scala中不起作用请帮助我如何在枚举值中添加点

2 个答案:

答案 0 :(得分:3)

可以使用名称后面的反引号:

scala> object TestKeys extends Enumeration{
           type  TestKeys = Value
           val _id, `Status.Date` = Value
       }
defined object TestKeys

但请注意,有一些意想不到的副作用:

scala> TestKeys.withName("Status.Date")
java.util.NoSuchElementException: No value found for 'Status.Date'
  at scala.Enumeration.withName(Enumeration.scala:124)
  ... 33 elided

scala> TestKeys.withName("Status$u002EDate")
res7: TestKeys.Value = Status$u002EDate

scala> TestKeys.values
res8: TestKeys.ValueSet = TestKeys.ValueSet(_id, Status$u002EDate)

JavaIndentifier中不能有.

scala> Character.isJavaIdentifierPart(46)  // 46 is '.'
res16: Boolean = false

答案 1 :(得分:1)

如果我理解正确,你需要一种在Scala中用点写一个标识符的方法。如果是这种情况,你可以尝试类似:`Status.Date`。

object TestKeys extends Enumeration{
    type  TestKeys = Value
    val _id , uuid, `Status.Date` = Value
}