尝试在List上定义新的隐式方法时出错

时间:2013-11-22 22:25:13

标签: scala implicit-conversion

我正在尝试使用以下代码在newMethod类上添加名为List的方法。

implicit class ListCompanionOps(f: List.type) extends AnyVal {
  def newMethod(p: String) = {
    println(p)
  }
}

但编译器抱怨以下错误:

$ scalac test.scala
test.scala:3: error: ListCompanionOps is already defined as (compiler-generated) method ListCompanionOps
implicit class ListCompanionOps(f: List.type) extends AnyVal {
               ^
one error found

我做错了什么?

由于

1 个答案:

答案 0 :(得分:5)

应该是:

implicit class ListCompanionOps[A](val f: List[A]) extends AnyVal {

List.type表示名为List的某个对象的类型。