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

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

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

  • Scala 中的多个类型下限

    我注意到tuple productIterator总是返回一个Iterator Any 想知道是否无法设置多个下限 因此它可能是最低公共超类型的迭代器 我尝试并搜索了一下 但只发现this https stackoverflow com q
  • idea sbt java.lang.NoClassDefFoundError: org/apache/spark/SparkConf

    我是spark的初学者 我使用 linux idea sbt 构建了一个环境 当我尝试快速启动Spark时 我遇到了问题 Exception in thread main java lang NoClassDefFoundError org
  • 模式匹配中使用的抽象类型的类型不匹配

    此代码编译时出现错误 def f1 T e T T e match case i Int gt i case b Boolean gt b type mismatch found i type with underlying type In
  • 计算行的排名

    我想根据一个字段对用户 ID 进行排名 对于相同的字段值 排名应该相同 该数据位于 Hive 表中 e g user value a 5 b 10 c 5 d 6 Rank a 1 c 1 d 3 b 4 我怎样才能做到这一点 可以使用ra
  • 在 C# 中枚举时从 List 中删除项目的智能方法

    我有一个经典的案例 尝试从集合中删除一个项目 同时在循环中枚举它 List
  • 实施策略模式的函数式方法

    我正在尝试解决一个处理从一种温度单位到另一种温度单位 摄氏度 开尔文 华氏度 转换的问题 在Java中 我需要创建一个接口并提供多个实现来封装输入类型并将结果作为输出类型的单元返回 例如开尔文到摄氏度或摄氏度到华氏度等 我已经在 scala
  • Scala 中的类型类解析如何工作?

    我有一个带有类型参数的函数 我想知道该类型参数是否是一个Option或不 我读过一些博文 即this one http danielwestheide com blog 2013 02 06 the neophytes guide to s
  • 如何从命令行运行scala文件?

    scala是否支持scala run xxx scala go语言支持这样运行 go my go 并且Python支持 python my py 但看来 scala xxx scala 仅进行语法检查 未观察到任何输出或运行行为 那么有没有
  • 结构化 scala 案例类的自定义 json 序列化

    我有一些用于往返 scala 案例类的工作 jackson scala 模块代码 Jackson 对于平面案例类非常有用 但是当我制作一个包含其他案例类列表的案例时 我似乎需要很多代码 考虑 abstract class Message c
  • 使用 slick 3.0.0-RC1 无法在 TableQuery 上找到方法结果

    我正在尝试 Slick3 0 0 RC1我遇到了一个奇怪的问题 这是我的代码 import slick driver SQLiteDriver api import scala concurrent ExecutionContext Imp
  • 从继承的受保护 Java 字段创建公共访问器

    我怎样才能完成以下工作 class Foo extends javax swing undo UndoManager increase visibility works for method override def editToBeUnd
  • scala 中 'Array[Int]' 隐式转换为 'Int => Int' 的地方在哪里?

    这是一个问题this https stackoverflow com questions 70000384 why val arr int int array1 2 3 is allowed in scala 现在我们已经证明了Array
  • .java 和 .scala 类之间是否可能存在循环依赖?

    假设我在 java 文件中定义了类 A 在 scala 文件中定义了类 B A 类使用 B 类 B 类使用 A 类 如果我使用 java 编译器 则会出现编译错误 因为 B 类尚未编译 如果我使用scala编译器A类将找不到 有没有可以同时
  • 什么样的函数被认为是“可组合的”?

    维基百科文章函数组合 计算机科学 https en wikipedia org wiki Function composition computer science says 就像数学中通常的函数组合一样 每个函数的结果作为下一个函数的参数
  • 用惯用的 Scala 更新大型数据结构

    我已经尝试 Scala 一段时间了 并且经常遇到支持不可变数据结构的建议 但是当你有一个像这样的数据结构时3D 场景图 大型神经网络或任何具有大量需要频繁更新的对象的东西 对场景中的对象进行动画处理 训练神经网络 这似乎是 运行时效率极低
  • 在scala / play框架中构建Json文件

    我正在使用 Play 框架和 Scala 我需要提供一个如下所示的输入 id node37 name 3 7 data children 如何使用 json 获取该格式 以下是 Play 框架网站上的示例 val JsonObject Js
  • 清理 IntelliJ 中构建的 Play 框架

    我有一个拼写错误conf routes文件导致 Play Framework 生成错误命名的类 重建项目并运行Invalidate Caches并没有解决 IntelliJ 中的问题 当我手动运行时重新生成了不正确的类文件play clea
  • Haskell scala 互操作性

    我是 Scala 初学者 来自面向对象范式 在了解 Scala 的函数式编程部分时 我被引导到 Haskell 纯函数式编程语言 探索 SO 问题答案 我发现 Java Haskell 具有互操作性 我很想知道 Scala Haskell
  • 通用 scala 函数,其输入是变量数量的函数

    我想定义一个函数f需要另一个函数g 我们需要g采取采取n双打 对于某些固定n 并返回一个 Double 函数调用f g 应该返回具体值n 例如 f Math max 2因为 Math sin 具有类型 Double Double gt Do
  • 为什么 Scala 中的隐式类必须驻留在另一个特征/类/对象中?

    基于scala文档 http docs scala lang org overviews core implicit classes html http docs scala lang org overviews core implicit

随机推荐

  • 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