Scala enum在另一个对象中看不到

时间:2017-04-28 18:19:03

标签: scala

我在enum中有以下MyEnum.scala

object MyEnum extends Enumeration {
  val A, B, C, D, E = Value
}

在另一个对象中,我试图为变量分配一个枚举:

object SomeOtherObject {
  def main(args: Array[String]): Unit = {
      val myValue = MyEnum.A
  }
}

然而,我得到了:

 error: not found: value MyEnum

这两个对象都在默认包中定义。

知道造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:1)

如果我在同一个scala文件中定义所有内容,一切正常

$ cat x.scala
object MyEnum extends Enumeration {
  val A, B, C, D, E = Value
}

object SomeOtherObject {
  def main(args: Array[String]): Unit = {
      val myValue = MyEnum.A
  }
}

$ scalac x.scala
# no output but produces the .class files

如果要定义2个不同的文件,请尝试将包添加到文件中,并可能导入。

我还尝试在y.scala文件中定义枚举,并在z.scala文件中定义主要内容。它还编译:

$ scalac y.scala z.scala