问题描述
我正在尝试使用单个[A]类型参数和带有A [_]类型参数的子类扩展基类-像这样:
abstract class IsBase[A]
abstract class IsSub[A[_]] extends IsBase[A[_]] {
type T
def get(self: A[T]): T
}
implicit def listIsSub[_T] = new IsSub[List] {
type T = _T;
def get(self: List[T]): T = self(0)
}
val list = List(1,2)
implicitly[IsSub[List]{ type T = Int }].get(list) // works fine
implicitly[IsBase[List[Int]]] // Could not find implicit value for parameter e
我知道一种实现此目的的方法就是将抽象类型T移至类型参数,例如:
abstract class IsSub1[A[_],T] extends IsBase[A[T]]
但是在我继续这条路线之前,我想先检查一下,没有一种直接的方法可以使它按原样进行。
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)