[英]Implement trait with type parameters in method
我在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]) = ???
}
如何在转换中不添加类型参数的情况下执行此操作?
谢谢
如何在转换中不添加类型参数的情况下执行此操作?
如果您不想要泛型类型参数,可以使用抽象类型 :
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] = ???
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.