2016-11-22 75 views
1

我有一个类的定义如下:如何使用类型参数的斯卡拉边界访问方法

value map is not a member of type parameter A 

class Pipe[ A ](a: A) { 
    def |>[ B ](f: A => B) = f(a) 
    def map[A, B, C](f: C => B)(implicit ev: A =:= List[C]): Seq[B] = { a.map(f) } 
} 

类以上不会在map方法以下错误编译

我已经尝试了两种方法,但都没有工作。我如何定义map方法,使a: A被认为是一个序列,因此可以使用map方法?

TIA。

回答

2

您阴影类型参数A.从地图定义中删除它:

class Pipe[ A ](a: A) { 
    def |>[ B ](f: A => B) = f(a) 
    def map[B, C](f: B => C)(implicit ev: A =:= List[B]): Seq[C] = a.map(f) 
}