Scala伴随对象覆盖方法错误

时间:2016-06-08 17:40:56

标签: scala

我有以下代码:

import org.scalatest._
import Companion._


class Companion {

    print(x)
}

object Companion extends Suite with BeforeAndAfterAll {


  override def beforeAll() {

  }

  private var x:Int = 5

}

我遇到的问题是我收到错误"方法'之前所有'没有任何东西。如果我删除import Companion._并将print(x)更改为print(Companion.x),则会解决问题。

我是scala的新手,并且对于为什么会这种情况感到非常困惑。

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

您应该将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会尝试导入自己的内容。