我有3类:
class AClass
class Base { val a = "a" }
class BaseOne extends Base { val b = "b" }
class BaseTwo extends Base { val c = "c" }
我想扩展它包含一个通用方法的特点, 我不能改变的特质
trait Converter {
def toAClass[T <: Base](e: T): AClass
def fromAClass[T <: Base](s: AClass): T
}
我想它在几个不同的对象扩展
object ConverterBaseOne extends Converter {
// ERROR
override def toAClass(e: BaseOne) : AClass = { printf(e.b) } // b is known
override def fromAlcass(a: AClass) : BaseTwo = {....}
}
我知道有一种方法与类参数做到这一点:特质转换器[T <:基本],也看到了这个帖子https://stackoverflow.com/a/4627144/980275我问,如果有不改变的解决方案性状??? 谢谢