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)
  }
}

我如何告诉编译器我正在使用 String - 而不是 URLT - 在writer.write(src.url)中?我无法修改 ForeignStreamWriter 的签名。

UPD

至于现在我找到了唯一的解决方案

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

但我真的不喜欢它。

4

1 回答 1

1

你需要import A._在范围内。顺便说一句,没有它,您的示例无法编译。

于 2013-02-04T04:45:06.097 回答