我有一个初学者斯卡拉的问题。我有一个类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