gpt4 book ai didi

scala - 使用 case 类的伴随对象作为类型参数时编译错误

转载 作者:行者123 更新时间:2023-12-04 22:12:26 24 4
gpt4 key购买 nike

我正在使用案例类在 Scala 中创建许多用于喷射的 json 消息。例如:

  case class Foo(name: String, attrs: List[String])
implicit val fooFormat = jsonFormat2(Foo)
object Foo {
case class Invalid(error: String)
}
case class Bar(name: String, kv: Map[String, String])
implicit val barFormat = jsonFormat2(Bar)

在上面的片段中, barFormat编译,但 fooFormat才不是:
type mismatch; found : Foo.type required: (?, ?) => ? 
Note: implicit value barFormat is not applicable here because it comes
after the application point and it lacks an explicit result type

我不想用 barFormat代替 fooFormat ,而且我明白一个case类会自动生成一个伴生对象,但是我不明白为什么这里会出现编译器错误,错误信息我很难破译。有谁知道这里的问题是什么以及如何解决它,最好不要删除我的 Foo伴侣对象?

最佳答案

从你的编译错误来看,它看起来像 jsonFormat2期望有两个参数的函数。你的意思是传递Foo的构造函数吗?和 Bar进去?如果是这样,你应该做 Foo.applyBar.apply .

关于scala - 使用 case 类的伴随对象作为类型参数时编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24273617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com