如何在 Scala 枚举值中添加一个点
How to add a dot in scala enums values
我有一个关注者enum
object TestKeys extends Enumeration{
type TestKeys = Value
val _id , uuid Status.Date= Value
}
我需要在 Status
和 Date
之间添加点,但 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
我有一个关注者enum
object TestKeys extends Enumeration{
type TestKeys = Value
val _id , uuid Status.Date= Value
}
我需要在 Status
和 Date
之间添加点,但 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