如何获取枚举值的枚举定义?

2024-03-15

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(使用前将#替换为@)

如何获取枚举值的枚举定义? 的相关文章

随机推荐

  • electro-forge如何指定打包的源目录?

    我已经操纵了创建反应应用程序与电子锻造app 现在我需要以某种方式指定从 CRA 生成的构建文件夹用于打包 该文件夹也应该被提供 电子锻造可以实现这样的事情吗 我知道您是在问如何告诉 electro forge 在哪个目录中找到源文件来打包
  • 无法在 FireFox 中更改 HTML5 音频标记的音量

    在本页http www metrovancouver org services solidwaste Holiday Pages Song aspx http www metrovancouver org services solidwas
  • XNA 媒体播放器快进/快退

    使用 XNA 4 0 我当前正在使用以下命令播放用户 PC XBox360 上的歌曲 Microsoft Xna Framework Media MediaPlayer Play Song song 我看到媒体播放器有一个静态属性比赛位置正
  • 如何确保 OS X 10.10 (Yosemite) 中的 Applescript 对话框焦点?

    在 OS X 10 10 Yosemite 之前 我可以通过告诉 当前应用程序 激活来确保 applescript 对话框获得焦点 tell current application activate set output to do she
  • 每当 Gem 无法在 Capistrano 中正确运行“bundle exec”时

    我在使用 Capistrano 将每当 gem 部署到我的生产环境时遇到问题 问题源于一个bundle exec whenever命令触发了一些 缺少 gem 问题 但从 shell 运行捆绑安装显示一切实际上都在那里 我的感觉是发生了两件
  • 为什么 Spring 不为关系数据库提供反应式(非阻塞)客户端?

    我用过Vert x https vertx io 用于创建反应式应用程序的工具包 支持关系数据库 例如MySQL 和 Postgres https vertx io docs vertx mysql postgresql client ja
  • C# 中日期时间更改时收到通知

    最近我正在尝试制作一个日历应用程序 它将向用户显示当前的年月日期 问题是 如果用户想让我的应用程序在第二天继续运行 我如何收到通知 我该如何更改显示的日期 我不想轮询当前日期来更新它 这在c 中可能吗 注意 我尝试过系统事件 TimeCha
  • 如何将任何类型的日期转换为 dd/mm/yyyy

    我从任何日期格式的 csv 文件接收文本 例如 dd mm yy or dd mm yyyy or mm dd yyyy or 4 may 2010 我如何转换为单一类型的格式 dd mm yyyy 我正在研究 C NET 3 5 WinF
  • MPDF 在末尾显示额外的页面

    我使用 mpdf 从 html 生成 pdf 生成的 pdf 存在一个问题 即多显示一页 如果内容在第 1 页结束 则生成 2 个页面 如果内容在第 2 页结束 则生成 3 个页面 这是我的代码
  • 用于搜索网站并提取结果的 Excel 宏

    我在工作表 1 的 A1 中有一个值 它可以是企业名称 或其关联的企业编号 当网站按编号或名称搜索时 输入需要详细信息的公司名称 或编号 后 我希望能够单击 搜索 按钮并将搜索结果显示在包含 2 列的表格中 例如工作表 1 A5 B9 标签
  • mat-error 不显示错误消息 角度 5

    问题是即使我将字段留空并移至另一个字段 也不会显示错误消息 我无法找到我在这里做错了什么 任何帮助将不胜感激 如果我在 onFormValuesChanged 上放置断点 它永远不会到达断点 我尝试过在构造函数内移动表单的构建部分 但没有任
  • 在iOS项目中使用Java库

    我正在开发一个项目 需要基于相对复杂的规则集进行业务逻辑计算 计算将在以下平台上执行 安卓应用程序 iOS app Java EE 应用程序容器 业务逻辑不依赖于任何特定于平台的细节 而是严格与 数字运算 有关 为了避免 Java 和 Ob
  • 如何在多线程游戏引擎中保持世界数据同步?

    所以我试图为我想编写的游戏创建一个简单的多线程游戏引擎 到目前为止 一切都很顺利 没有任何问题 我什至知道我必须采取什么步骤才能完成它 只有一件事我不知道 好吧 从技术上讲 我知道它的解决方案 但我希望有更优雅和更快的东西 基本上 我的引擎
  • Retrofit2:将带有动态键的 JSON 转换为 Map,其中 Model 也包含这些键

    我将 Retrofit 2 与 Gson 和 RxJava 结合使用 我的 JSON 数据看起来像这样 groups 1 name First group type some data more data 2 name Second gro
  • 如何以编程方式构建pom文件的有效模型?

    我将以编程方式从 pom 文件创建有效模型 以获取 pom 模型实例中的所有继承属性 我会分析 pom 的一些属性 但我需要它的所有属性 包括 遗传的 我该怎么办 我尝试过 Sonatype Aether 但没有找到示例 您可以运行 mvn
  • 从 NSString 中删除 @"" 或将 NSString 类型转换为变量名

    我从文件中读取 NSString 然后我想将其 define 为 UIColor 以便我可以快速更改颜色 我想要像这样工作的东西 define GRAY UIColor darkGrayColor 然后从文件中读取字符串 GRAY 并将其放
  • 在kotlin中如何使用ViewModel和ViewModelProvider.AndroidViewModelFactory?

    在我当前的项目中 我使用下一行 mViewModel ViewModelProviders of this get MainViewModel class java 例如一个ViewModel but in https developer
  • CMake 是否可以始终强制编译/构建特定文件? [复制]

    这个问题在这里已经有答案了 我有一个 C 文件 使用 DATE 显示我的应用程序的构建日期 但如果这个文件没有被修改 它就不会被重建 日期也不会被更新 CMake 总是可以重建该特定文件吗 显然可以使用 makefile 如何强制 make
  • addChild的正确使用

    我是编码和 AS3 的新手 我正在阅读有关使用 AS3 将内容添加到舞台的内容 并了解了 addChild 方法 阅读更多内容后 我发现有不同的使用方法 我还读到有些方法比其他方法更好 而有些方法根本不好 最好避免 但我不相信这些消息来源
  • 如何获取枚举值的枚举定义?

    object TestEnum extends Enumeration val One Value One val Two Three Value println TestEnum One getClass println TestEnum