object TestEnum extends Enumeration{
val One = Value("One")
val Two,Three= Value
}
println(TestEnum.One.getClass)
println(TestEnum.One.getClass.getDeclaringClass)//get Enumeration
所以我的问题是如何从 TestEnum.One 获取 Class[TestEnum] ?
Thanks.
不幸的是,我认为你不能。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 中),那么你也不能进行相等检查!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)