【发布时间】:2016-04-26 14:37:03
【问题描述】:
我有以下代码:
trait MyTrait[B] {
def func()
}
class A[B: ClassTag : Zero](val x: SparseVector[B]) extends MyTrait[B] {
def this(x: Seq[(Int,B)]) = this({
val (index, vals) = x.unzip
vals.toArray
new SparseVector[B](index.toArray, vals.toArray, vals.length)
})
def func(): Unit = {}
}
尽管 ClassTag 已添加到泛型参数中,但仍会获得 error: No ClassTag available for B。我错过了什么?
SparseVector 以上是微风线性代数包的成员(breeze.linalg)
【问题讨论】:
-
import scala.reflect.ClassTag? -
好吧,如果我定义
MyTrait,这对我来说编译得很好。 -
代码运行正常(去掉未知的
extends MyTrait[B]),是特征代码中引发的错误吗? -
我把我的例子过于简单化了。请参阅上面的更新版本。
标签: scala generics implicit scala-breeze