1

私は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 = {....}
 }

クラスパラメータでそれを行う方法があることを知っています: trait Converter[T <: Base] また、この投稿を見ましたhttps://stackoverflow.com/a/4627144/980275 変更せずに解決策があるかどうか尋ねています特性??? ありがとうございました

4

1 に答える 1