scala之在方法中使用类型参数实现特征
mq0036
阅读:22
2025-01-19 22:14:33
评论:0
我对 Scala 中的泛型有疑问。我有两个类(class)
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]) = ???
}
如果不在转换中添加类型参数,我该如何做到这一点?
谢谢
请您参考如下方法:
How can I do this without adding type parameters in the Transformation?
如果不需要泛型类型参数,可以使用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] = ???
}
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。