0

与えられたクラス

object A {
  type URLT = String
}

case class A(url : URLT)

class ForeignStreamWriter {
  def writeString(str: String) {}
}

trait WriterA {

  val writer : ForeignStreamWriter

  def write(src: A) {
    writer.write(src.url)
  }
}

writer.write(src.url)で URLT ではなく文字列を使用していることをコンパイラに伝えるにはどうすればよいですか? ForeignStreamWriter の署名を変更できません。

UPD

今のところ、私は唯一の解決策を見つけました

  def write(src: A) {
    writer.write(src.url.asInstanceOf[String])
  }

しかし、私はそれがあまり好きではありません。

4

1 に答える 1

1

あなたimport A._は範囲内にいる必要があります。ちなみに、サンプルはそれなしではコンパイルできませんでした。

于 2013-02-04T04:45:06.097 に答える