我尝试让 Seq[String] 包含案例类的字段名称和另一个 Seq[String] 包含案例类的值。以一般的方式。我想我必须使用 Poly1 函数映射值才能具有任意类型 => 字符串。
但现在,我无法从 LabelledGenerics 中提取键和值。
def apply[T,R <: HList](value : T)(implicit gen: LabelledGeneric.Aux[T, R],
keys : Keys[R],
valuesR : Values[R]
) {
val hl = gen.to(value)
val keys = hl.keys ...
val values = hl.values.map ...
}
我不确定我是否必须要求隐含的键和值,或者是否可以从 LabelledGeneric 中获得。
我试图将以下 Poly 映射到键上以获得字符串的 hlist。但似乎钥匙不是见证人
object PolyWitnesToString extends Poly1 {
implicit def witnessCase = at[Witness]{ w => w.toString}
}
我现在有点迷路了。