编译器不断产生以下错误:
No ClassTag available for a
val keys = Array.fill(maxSize+1){ default[a] }
^
not enough arguments for method fill: (implicit evidence$9: scala.reflect.ClassTag[a])Array[a].
Unspecified value parameter evidence$9.
val keys = Array.fill(maxSize+1){ default[a] }
^
这段代码
object Utils {
def default[a] = {
class DefaultVal {
var x: a = _
}
(new DefaultVal).x
}
}
class IndexedHeap[a](maxSize: Int)(implicit ev: Ordering[a]) {
import ev._
import Utils._
val keys = Array.fill(maxSize+1){ default[a] }
}
有关如何解决此问题的任何想法?
答案 0 :(得分:2)
我认为添加ClassTag会修复它,如下所示:
[a:ClassTag]
根据您对隐式参数和上下文边界冲突的评论进行编辑: 更改隐式参数以包括ClassTag
implicit ev: Ordering[a], ct: ClassTag[a]