如何编译?
代码
object Playground2 {
trait Client[S,A] {
def wrap[S,A](v: A): (S,A)
}
class TestClient extends Client[String, Int] {
override def wrap[String,Int](v: Int): (String, Int) = ("cache 2.00", v)
}
}
错误 类型不匹配; found:需要java.lang.String(“cache 2.00”):String
答案 0 :(得分:2)
以下是编译代码的版本:
object Playground2 {
trait Client[S,A] {
def wrap(v: A): (S,A)
}
class TestClient extends Client[String, Int] {
override def wrap(v: Int) = ("cache 2.00", v)
}
}
您在wrap
函数中再次复制了类型,并且您不需要这些类型,因为它们已经在特征本身上定义。