Scala 类型参数化,Shapeless - 找不到参数 Generic 的隐式值
Scala type parameterization, Shapeless - could not find implicit value for parameter Generic
我无法使用 scala 类型参数化函数实现 shapeless.Generic。在下面的代码中,出现错误 "could not find implicit value for parameter gen: shapeless.Generic[T]"。
def foo[T](instance: T) = {
val gen = shapeless.Generic[T] //getting error in this line!!!
val values = gen.to(instance)
println(values)
}
case class Bar(x:String, y:String)
var bar = Bar("a","b")
foo(bar)
有什么我遗漏的吗?
def foo[T, HL <: HList](instance: T)(
implicit gen: Generic.Aux[T, HL]
) = {
val values = gen to instance
println(values)
}
case class Bar(x: String, y: String)
您通常需要使用 Aux
模式,泛型是宏具体化的,但会产生一个任意类型,该类型公开为抽象类型成员。如果您还不理解这里的所有单词,请阅读更多内容 here。
我无法使用 scala 类型参数化函数实现 shapeless.Generic。在下面的代码中,出现错误 "could not find implicit value for parameter gen: shapeless.Generic[T]"。
def foo[T](instance: T) = {
val gen = shapeless.Generic[T] //getting error in this line!!!
val values = gen.to(instance)
println(values)
}
case class Bar(x:String, y:String)
var bar = Bar("a","b")
foo(bar)
有什么我遗漏的吗?
def foo[T, HL <: HList](instance: T)(
implicit gen: Generic.Aux[T, HL]
) = {
val values = gen to instance
println(values)
}
case class Bar(x: String, y: String)
您通常需要使用 Aux
模式,泛型是宏具体化的,但会产生一个任意类型,该类型公开为抽象类型成员。如果您还不理解这里的所有单词,请阅读更多内容 here。