我有一个类家族
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>
.
您需要在
标识符中添加方法def prefix : String
Trait
因此,该方法将被子类中的 val 覆盖。