2013-02-04 57 views
0

鑑於類Scala和抽象型 「拆箱」

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

我怎麼能告訴我與字符串工作的編譯器 - 不URLT - 在writer.write(src.url)?我無法修改ForeignStreamWriter的簽名。

UPD

至於現在,我發現唯一的解決辦法

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

,但我真的不喜歡它。

+0

不確定我關注。你的編譯錯誤究竟是什麼?你的意思是'writeString(src.url)'? – Faiz

回答

1

您需要在範圍內使用import A._。順便說一句,如果沒有它,你的示例就不能編譯。