【发布时间】:2013-02-04 15:25:12
【问题描述】:
给定的类
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) 中告诉编译器我正在使用 String 而不是 URLT?我无法修改 ForeignStreamWriter 的签名。
UPD
至于现在我找到了唯一的解决方案
def write(src: A) {
writer.write(src.url.asInstanceOf[String])
}
但我不是很喜欢。
【问题讨论】:
-
不确定我是否关注。你的编译错误到底是什么?你的意思是
writeString(src.url)?
标签: scala abstract-type