嗯,我有这样的事情:
trait A
class Serving(a: => A)
object App extends Serving(App.Main) {
object Main extends A
}
我收到错误super constructor cannot be passed a self reference unless parameter is declared by-name
。我可以通过
object App extends Serving(Serv.Main)
object Serv {
object Main extends A
}
但我不想。它增加了2个额外.class
es,它让我觉得不雅。
使用object App extends Serving(this.Main)
也会产生错误。 A
和Serving
的结构无法真正改变,但有没有办法解决此错误?
答案 0 :(得分:1)
您的代码在Scala 2.8.1中编译得很好,即使该参数未按名称声明。