2

単純化されたコード例を考えると:

sealed trait A {

  val c1: String
  val c2: Int

  def copy[Z <: A](src: File) : Z

}

case class B(c1: String, c2: Int, src: File) extends A

case class C(c1: String, c2: Int, c3: MyClass, src: File) extends A

ケースクラスと「ターゲット」ファイルに対して生成されたものと一致するように、特性Aでコピーメソッドを定義するにはどうすればよいですか? 与えられた定義は型チェックを行い、クラス B と C にメソッドのコピーがないことを訴えます。

4

1 に答える 1