1

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

   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
}

怎么了?

4

2 回答 2

1

在 import 语句中尝试这个细微的变化:

package org.myproject.subnamespace

import org.myproject.MyEnum._

abstract class MyClass {
  def myEnum123: MyEnum
}

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

理解 Scala 枚举

于 2013-06-14T12:53:00.433 回答
0

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

def myEnum123: MyEnum.MyEnum

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

于 2013-06-14T12:56:20.423 回答