2011-07-09 276 views
11

有没有一种方法来识别给定的对象是一个枚举值?斯卡拉枚举为int

x.isInstanceOf[Enumeration.$Value]似乎并没有工作,从我的理解路径依赖的类型,不应该。

我想编写一个给定的任何枚举值的函数,返回其ID。或者,将Enumeration转换为Int的隐式也会很好。

回答

2

类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 
+0

您应该解释您的代码 - 它被列为“低质量帖子”的risc。 – davidkonrad

+0

你如何指定它? – Ruslan