问题标签 [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.

0 投票
1 回答
398 浏览

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)

这是定义:

这在这里有效:

0 投票
0 回答
401 浏览

scala - pureconfig Enumeratum 更好的异常

将 pureconfig 与 Enumeratum 一起使用时,如何获得更好的异常? https://github.com/pureconfig/pureconfig/tree/master/modules/enumeratum

但:

失败并出现令人讨厌的异常。而是类似于以下内容的描述性消息:

会很好。我怎样才能做到这一点?

0 投票
0 回答
209 浏览

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)
0 投票
0 回答
260 浏览

scala - 在 Scala 中使用带有 Quill 的案例类中使用可选的 StringEnumEntry 字段

在使用 Circe 和 Quill 处理枚举值时,我们成功地使用了 enumeratum。我们定义如下:

Payload在使用 Quill 和 Circe 解码/编码 mysql 和 json 时使用。使用 Quill 和 MySQL,这适用于下表:

但是,当为我们的枚举类型和可为空的 MySQL 类型使用可选字段时,我终生无法弄清楚如何使这项工作发挥作用。

我们希望能够像这样使用有效负载类:

并使用这样的 SQL 表(topic_type可以为空):

当尝试使用可选的topic并使用 Quill 从我们的数据库中读取时:

我们得到

是不是我们需要指定一些自定义解码器/编码器来处理选项/空值?

0 投票
1 回答
929 浏览

scala - Enumeratum Circe 序列化

我有一个简单的案例类,如下所示:

和半自动编码器:

但是,当我进行序列化测试时:

我得到:

当我想要:

它在我使用自动派生时有效,但我想使用半自动派生,因此我可以使用 withSnakeCaseMemberNames 等功能。

0 投票
0 回答
443 浏览

scala - 在scala枚举中覆盖toString

假设我定义了以下枚举:

我想覆盖Day.toString以返回条目名称而不是类名称。但似乎不是那么直观。

我试过的:

  1. 手动覆盖toString返回entryName

但它会产生 StackOverflowError (与惰性验证有关):

  1. 指定super要使用的确切方法:

但还是国企。

  1. 我知道手动覆盖条目名称是可能的,但它需要编写样板代码:
  1. 它适用于StringEnum但同样,我将需要为文字编写样板代码。