Я не думаю, что вы можете, к сожалению. TestEnum.One
действительно просто экземпляр класса Enumeration#Value
. На самом деле, это намного хуже, чем просто это - все значения перечисления стираются по типу в одно и то же:
object Weekday extends Enumeration {
val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
def foo(w: Weekday.Value)
def foo(e: TestEnum.Value) //won't compile as they erase to same type
Так как экземпляры вашего перечисления являются просто экземплярами Enumeration#Value
, их декларирующий класс просто scala.Enumeration
.
Это печально, но кажется, что эти перечисления в scala хуже, чем бесполезны; если вы пропустите их через сериализацию (по крайней мере, в 2.7.7), то вы также не сможете проверять равенство!