有没有一种方法来识别给定的对象是一个枚举值?斯卡拉枚举为int
x.isInstanceOf[Enumeration.$Value]
似乎并没有工作,从我的理解路径依赖的类型,不应该。
我想编写一个给定的任何枚举值的函数,返回其ID。或者,将Enumeration转换为Int的隐式也会很好。
有没有一种方法来识别给定的对象是一个枚举值?斯卡拉枚举为int
x.isInstanceOf[Enumeration.$Value]
似乎并没有工作,从我的理解路径依赖的类型,不应该。
我想编写一个给定的任何枚举值的函数,返回其ID。或者,将Enumeration转换为Int的隐式也会很好。
x.isInstanceOf[Enumeration#Value]
适合我。从specification, Section 3.2.2 "Type Projection"。
类scala.Enumeration.Value有一个成员字段“ID”,其是内部整数值。如果没有特别说明,则从0开始。
scala> object Weekday extends Enumeration {
| val Mon, Tue, Wedn, Thur, Fri, Sat, Sun = Value
| }
defined module Weekday
scala> Weekday.Mon.id
res5: Int = 0
您应该解释您的代码 - 它被列为“低质量帖子”的risc。 – davidkonrad
你如何指定它? – Ruslan