【发布时间】:2016-03-17 20:57:30
【问题描述】:
我使用 shapeless 进行案例类转换, 我有一个 2 案例类:
import shapeless._
case class Foo(id: Int, name: String)
case class Bar(id: Int, name: String, price: Double)
val fooGen = Generic[Foo]
val barGen = Generic[Bar]
val foo = Foo(1, "foo")
val fooRepr = fooGen.to(foo)
val additional = fooRepr :+ 1.0
val bar = barGen.from(additional)
这很好用,但是当我尝试将 Bar 转换为 Foo 时
fooGen.from(barGen.to(bar))
我得到一个错误:
found : main.barGen.Repr
[error] (which expands to) shapeless.::[Int,shapeless.:: [String,shapeless.::[Double,shapeless.HNil]]]
[error] required: main.fooGen.Repr
[error] (which expands to) shapeless.::[Int,shapeless.::[String,shapeless.HNil]]
[error] println(fooGen.from(barGen.to(bar)))
是否可以转换一个字段比另一个字段多的案例类?
【问题讨论】: