无法访问子包中的对象

时间:2013-06-14 12:34:28

标签: scala

我找到了一个如何在Scala中实现enum的示例,这就是我所拥有的:

   package org.myproject

   object MyEnum extends Enumeration {
      type MyEnum = Value
      val val1, val2, val3 = Value
    }

但是,我有一个错误type MyEnum is not a member of package org.myproject

package org.myproject.subnamespace

import org.myproject.MyEnum

abstract class MyClass {
  def myEnum123: MyEnum
}

请注意,它们位于略有不同的包中。

更新:有2个错误,实际上,这取决于我如何定义def

package org.myproject.subnamespace

import org.myproject.MyEnum

abstract class MyClass {
  def myEnum123: MyEnum // not found: type MyEnum
  def myEnum123: org.myproject.MyEnum // type MyEnum is not a member of package org.myproject
}

怎么了?

2 个答案:

答案 0 :(得分:1)

在import语句中尝试稍微更改:

package org.myproject.subnamespace

import org.myproject.MyEnum._

abstract class MyClass {
  def myEnum123: MyEnum
}

您可以查看以下链接,以便更好地了解为什么必须导入这样的枚举:

Understanding scala enumerations

答案 1 :(得分:0)

对象声明不会引发类型声明,因此会出现错误消息。你可能想声明

def myEnum123: MyEnum.MyEnum

有关小型教程,请参阅http://daily-scala.blogspot.ch/2009/08/enumerations.html