簡體   English   中英

在方法中使用類型參數實現trait

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM