我在Scala中遇到了泛型问题。我有两个班级
import scala.reflect.ClassTag
class Data[T: ClassTag](val list: List[T]) {
}
trait Transformation {
def transform[T, U](data: Data[T]) : Data[U]
}
现在我想实现一个从Int传递给String的类,类似这样的
class FromInt2String extends Transformation {
override def transform[String, Int](data: Data[String]) = ???
}
但我知道这就像
class FromInt2String extends Transformation {
override def transform[T, U](data: Data[T]) = ???
}
如果不在转换中添加类型参数,我该怎么做?
由于
答案 0 :(得分:4)
如何在不添加类型参数的情况下执行此操作 转化
如果您不想要通用类型参数,可以使用Abstract Types:
trait Transformation {
type T
type U
def transform(data: Data[T]) : Data[U]
}
class FromInt2String extends Transformation {
override type T = String
override type U = Int
override def transform(data: Data[String]): Data[Int] = ???
}