繁体   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