2
试图映射自定义多态类的HList我得到了可怕的“无法找到参数映射的隐式值”错误。代码示例:无定形映射和亚型多态与自定义类型绑定
import shapeless._
trait SubTrait
case class A() extends SubTrait
case class B() extends SubTrait
case class C[T <: SubTrait](x: T)
object TheMapper extends Poly1 {
implicit def default[T <: SubTrait, L[T] <: C[T]] = at[L[T]](_.x)
}
val ab = C(A()) :: C(B()) :: HNil
println(ab.map(TheMapper))
如果L [T]的界限是例如Iterable(请参阅this very similar question,解决方案和注释)。我错过了什么?
请注意,惯例是写本地类型变量小写。 – OlivierBlanvillain
@OlivierBlanvillain哦,好的。我不能说我已经看到这种做法足够坚持承担这一惯例。感谢您指出。 –
使用REPL作为调试器,很好:)谢谢! –