我有以下代码:

import org.scalatest._
import Companion._


class Companion {

    print(x)
}

object Companion extends Suite with BeforeAndAfterAll {


  override def beforeAll() {

  }

  private var x:Int = 5

}

我遇到的问题是我收到错误消息“Method 'beforeAll' 不覆盖任何内容。如果我删除 import Companion._ 并将 print(x) 更改为 print(Companion.x),这可以解决问题。

我是 Scala 的新手,对于为什么会发生这种情况感到非常困惑。

谢谢你的帮助!

最佳答案

您应该将 import Companion._ 移动到 Companion 类:

import org.scalatest._

class Companion {
  import Companion._

  print(x)
}

object Companion extends Suite with BeforeAndAfterAll {
  override def beforeAll() = ???
  private var x:Int = 5
}

否则你会有一个导入循环:object Companion 会尝试导入它自己的内容。

关于Scala 伴随对象覆盖方法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37709333/

10-12 19:48