我无法解决如何使此方法可重用的问题:
trait T
case class A extends T
case class B extends T
def deserialize(source:Json):A = {
source.convertTo[A]
}
该调用方法时如何指定转换成什么类型?.convertTo[x]
方法可以同时转换为A
and B
; 但是,目前这种方法只能产生A
.
澄清:
目前我可以这样做,但它是多余的,特别是当T
子类的数量增加时:
def deserialize_A_(source:Json):A = {
source.convertTo[A]
}
def deserialize_B_(source:Json):B = {
source.convertTo[B]
}
如何将这两种方法合并为一个,以便处理所有子类T
?(注意:假设嵌套方法convertTo
已经可以处理所有这些子类。)
因为展示比解释更容易(我认为我写它的方式行不通):
def deserialize(source:Json, subclassToConvertTo:SubclassOfT):SubclassOfT = {
source.convertTo[subclassToConvertTo]
}