gpt4 book ai didi

scala - 如何获得枚举值的枚举定义?

转载 作者:行者123 更新时间:2023-12-01 08:41:33 24 4
gpt4 key购买 nike

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]?

谢谢。

最佳答案

不幸的是,我认为你不能。 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 中)传递它们,那么您也无法进行相等性检查!

关于scala - 如何获得枚举值的枚举定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2100730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com