[英]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.