在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中获取枚举的名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 MVC Razor 代码获取枚举成员的显示名称属性?

如何在graphql中获取所有枚举值

Scala 3枚举方法覆盖

从 Qt 中的 QKeyEvent 获取键的“名称”

如何在 Scala 3 枚举上进行模式匹配

在c#中获取所有枚举值的简单方法