我是一个全新的无形的人,我想将Mapper[mix.type, HNil]#Out
转换为案例类
我该怎么做? (如果您需要更多信息,请告诉我......)
答案 0 :(得分:1)
只有在定义一个与此Mapper#Out
完全相同的形状的案例类时才会有效。如果是这种情况,您可以使用shapeless.Generic
创建案例类的实例:
val mout = ... // HList coming from your Mapper
case class A(i: Int, s: String)
shapeless.Generic[A].from(mout): A
假设Generic#Repr
和Mapper[mix.type, HNil]#Out
属于同一类型,您可以使用以下方法检查:
val mapper = the[Mapper[mix]]
val gen = the[Generic[A]]
implicitly[mapper#Out =:= gen#Repr] // This only complies if scalac can
// prove equality between these types