Scala多态性:与类关联的数据

时间:2013-11-06 07:50:42

标签: scala

我有一系列课程

class FooId extends Identifier {
  val prefix = "foo"
}
class BarId extends Identifier {
  val prefix = "bar"
}

其中prefix始终是'静态'值。 (实际上,此时,该值在同伴类中重复。)

我想对这些内容进行抽象,以便能够轻松地序列化和反序列化任何类型的标识符。我想写一个这样的函数:

val idFromString: PartialFunction[String, T <: Identifier] = {
  case s if s.startsWith(<T.prefix>) =>
      new T(Integer.parseInt(s.drop(<T.prefix>.length)))
}

但我不知道应该代替<T.prefix>

1 个答案:

答案 0 :(得分:0)

您需要在标识符def prefix : String

中添加方法Trait

因此,该方法将被子类中的val覆盖。