【发布时间】:2017-09-15 23:38:21
【问题描述】:
我有这个标准Shapeless代码:
case class KeyValue(key: String, value: Int)
val kv = KeyValue("key", 1)
def processCaseClass(p: KeyValue) = {
val gen = LabelledGeneric[KeyValue]
gen.to(p)
}
但是我不想使用案例类的名称,而是使用泛型,但是,这样重写它不起作用:
def processCaseClass[KV <: Product, L <: HList](p: KV) = {
val gen = LabelledGeneric.Aux[KV, L]
gen.to(p)
}
如果我将 gen 更改为隐式参数,它可以正常工作。
上面的代码有什么问题?
【问题讨论】: