问题标签 [enumeratum]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 在地图中使用枚举枚举不起作用
我有一个用 enumeratum 创建的枚举:
如果我在地图中使用它,它会抛出:
No instance of play.api.libs.json.Format is available for scala.collection.immutable.Map[finnova.bpf.api.entity.Language, java.lang.String] in the implicit scope (Hint: if declared in the same file, make sure it's declared before)
这是定义:
这在这里有效:
scala - pureconfig Enumeratum 更好的异常
将 pureconfig 与 Enumeratum 一起使用时,如何获得更好的异常? https://github.com/pureconfig/pureconfig/tree/master/modules/enumeratum
但:
失败并出现令人讨厌的异常。而是类似于以下内容的描述性消息:
会很好。我怎样才能做到这一点?
scala - 案例类的无样板投影以更改枚举的数据类型
我有一个 Enumeratum 枚举,需要将其加载到 spark 数据框中。显然,由于缺少编码器,这会失败。
失败No Encoder found for type Foo
。如何将案例类(没有样板)投影到:
- 要么让它在 spark 中正常工作(我不)想要二进制 kryo 输出
- 或通过以下方式将其转换为字符串
Foo.Baz.entryName
(但没有定义类似的类)Seq(FooBar(1, "one", Foo.Baz), FooBar(2, "two", Foo.Bar)).map(allValluesButxxxx, xxxx.entryName)
scala - 在 Scala 中使用带有 Quill 的案例类中使用可选的 StringEnumEntry 字段
在使用 Circe 和 Quill 处理枚举值时,我们成功地使用了 enumeratum。我们定义如下:
并Payload
在使用 Quill 和 Circe 解码/编码 mysql 和 json 时使用。使用 Quill 和 MySQL,这适用于下表:
但是,当为我们的枚举类型和可为空的 MySQL 类型使用可选字段时,我终生无法弄清楚如何使这项工作发挥作用。
我们希望能够像这样使用有效负载类:
并使用这样的 SQL 表(topic_type
可以为空):
当尝试使用可选的topic
并使用 Quill 从我们的数据库中读取时:
我们得到
是不是我们需要指定一些自定义解码器/编码器来处理选项/空值?
scala - Enumeratum Circe 序列化
我有一个简单的案例类,如下所示:
和半自动编码器:
但是,当我进行序列化测试时:
我得到:
当我想要:
它在我使用自动派生时有效,但我想使用半自动派生,因此我可以使用 withSnakeCaseMemberNames 等功能。
scala - 在scala枚举中覆盖toString
假设我定义了以下枚举:
我想覆盖Day.toString
以返回条目名称而不是类名称。但似乎不是那么直观。
我试过的:
- 手动覆盖
toString
返回entryName
:
但它会产生 StackOverflowError (与惰性验证有关):
- 指定
super
要使用的确切方法:
但还是国企。
- 我知道手动覆盖条目名称是可能的,但它需要编写样板代码:
- 它适用于
StringEnum
但同样,我将需要为文字编写样板代码。