我有3个班:
class AClass
class Base { val a = "a" }
class BaseOne extends Base { val b = "b" }
class BaseTwo extends Base { val c = "c" }
Run Code Online (Sandbox Code Playgroud)
我想扩展一个包含泛型方法的特征,我不允许改变特征
trait Converter {
def toAClass[T <: Base](e: T): AClass
def fromAClass[T <: Base](s: AClass): T
}
Run Code Online (Sandbox Code Playgroud)
我想在几个不同的对象中扩展它
object ConverterBaseOne extends Converter {
// ERROR
override def toAClass(e: BaseOne) : AClass = { printf(e.b) } // b is known
override def fromAlcass(a: AClass) : BaseTwo = {....}
} …Run Code Online (Sandbox Code Playgroud)