[英]Implement trait with type parameters in method
I have a problem with generics in Scala. 我在Scala中存在泛型问题。 I have two classes
我有两节课
import scala.reflect.ClassTag
class Data[T: ClassTag](val list: List[T]) {
}
trait Transformation {
def transform[T, U](data: Data[T]) : Data[U]
}
Now I want to implement a class to pass from Int to String, something like this 现在我想实现一个从Int传递给String的类,就像这样
class FromInt2String extends Transformation {
override def transform[String, Int](data: Data[String]) = ???
}
But I know this is exactly like 但我知道这是完全一样的
class FromInt2String extends Transformation {
override def transform[T, U](data: Data[T]) = ???
}
How can I do this without adding type parameters in the Transformation? 如何在转换中不添加类型参数的情况下执行此操作?
Thanks 谢谢
How can I do this without adding type parameters in the Transformation?
如何在转换中不添加类型参数的情况下执行此操作?
If you don't want generic type parameters, you can use 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] = ???
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.