我有一個初學者斯卡拉的問題。我有一個類Sample,它擴展了特徵SampleAPI。現在我試圖使用seq構建一個Sample實例序列。我會是這個樣子:如何定義添加到Seq的特徵?
var samples: Seq[SampleAPI] = Seq()
for(...) {
samples :+= new Sample(...))
}
這給了我以下編譯器錯誤:「類型不匹配;實測值:序號[java.lang.Object繼承]要求:序號[se.uu.medsci.queue.setup。 SampleAPI]」
所以,我想:
samples :+= (new Sample(sampleName, this, illuminaXMLReportReader)).asInstanceOf[SampleAPI]
這反而會引發一個運行時異常,說樣品不能韌皮到SampleAPI。我想這是我在理解Scala中使用特徵時遇到的一個問題。任何幫助搞清楚這一點將不勝感激。
不能重現你的編譯器錯誤,用' trait SampleAPI工作得很好; class Sample擴展SampleAPI; var sample:Seq [SampleAPI] = Seq(); (i < - 1至10){ 樣本:+ =新樣本() }' –
您應該真正發佈所有相關代碼並指定錯誤對應的行。再現錯誤的最小示例將是理想的。 – DaoWen
你是對的@KimStebel它的工作原理,如果你延伸Sample然後寫我,但錯過了我自己的代碼。 – Johan