0

我有一个需要带有 ClassTag 的函数的特征

trait Foo[T] {
    def bar(a: List[T])(implicit ev: ClassTag[T]): Unit
}

现在我有一个需要扩展该特征的类,但它的 ClassTag 也用于其他方法,例如

class MyClass[T](implicit classTag: ClassTag[T]) extends Foo[T] {
    override def bar(a: List[T])(implicit ev: ClassTag[T]): Unit = { /* do stuff */ }
    def other(p: Map[String, T]) = /* other stuff where I need the ClassTag */
}

当它被编译时,我收到一条错误消息:

Error:scalac: ambiguous implicit values:
both value classTag in class MyClass of type scala.reflect.ClassTag[T]
and value ev of type scala.reflect.ClassTag[T]
match expected type scala.reflect.ClassTag[T]

有没有一种方法可以同时容纳类级别的 ClassTag 并覆盖父特征的方法?

4

1 回答 1

1

你可以简单地给他们两个取相同的名字。

于 2014-11-19T12:45:44.467 回答