问题描述
我试图在我的代码中加入一些无形的东西,并且陷入了一个尴尬的早期障碍。在下面的示例中,似乎将一个未定义的对象包含在HNil中:
trait HasValue[A,B] {
def get(a: A): B
def getAll[L <: HList,O <: HList](a: A)(implicit ga: GetAll[A,L]): O = ga.getAll(a,HNil)
}
trait GetAll[A,B] {
def getAll[L <: HList,O <: HList](a: A,l: L): O
}
implicit def getAllIfHasValue[A,B](implicit ev: HasValue[A,B]) = new GetAll[A,l: L): O = ev.get(a) :: l
}
并出现错误-type mismatch: Found B :: L,required O
。
我本以为,由于L
本身就是HList
,B :: L
本身应该就是HList
,因此一切都应该很好。但显然不是。
任何帮助表示赞赏!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)