在scala 3中获取枚举的名称?
Posted
技术标签:
【中文标题】在scala 3中获取枚举的名称?【英文标题】:Get name of the enum in scala 3? 【发布时间】:2022-01-12 16:27:51 【问题描述】:Java 枚举有 name()
方法,但 scala 3 没有。
如何在 scala 3 中获取枚举的名称?
enum Color:
case Red, Green, Blue
【问题讨论】:
【参考方案1】:toString()
方法给出枚举的名称。
enum Color:
case Red, Blue, Yellow
println(Color.Red.toString()) //=> Red
Scala 3 enum 还可以扩展 java Enum 类并使用name()
方法。
enum Color extends Enum[Color]:
case Red, Blue, Yellow
println(Color.Red.name()) //=> Red
【讨论】:
我猜这两种方法都不适用于case Complicated(r: Int, g:Int, b:Int)
。在这些情况下,.productPrefix
会为您提供案例名称(此处为Complicated
)。
@Thilo,它适用于参数化枚举。 scastie.scala-lang.org/mk8J7S8eTG2p0Yt1EuEXaw 你能添加更多关于你的例子case Complicated(r: Int, g:Int, b:Int)
的细节吗?
enum
关键字也可用于定义不直接转换为 Java 枚举的代数数据类型:docs.scala-lang.org/scala3/reference/enums/adts.html以上是关于在scala 3中获取枚举的名称?的主要内容,如果未能解决你的问题,请参考以下文章