如何在 Scala 枚举值中添加一个点

How to add a dot in scala enums values

我有一个关注者enum

object TestKeys extends Enumeration{

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

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

中添加点

如果我没理解错的话,您需要一种在 Scala 中用点编写标识符的方法。如果是这种情况,您可以尝试类似的操作:`Status.Date`。

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

可以在名称周围使用反引号:

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