当我将其移动到另一个包时,为什么我的Scala枚举会中断?

时间:2011-07-17 00:16:33

标签: scala

枚举代码如下所示

package com.mydomain

object Market extends Enumeration {

  type Market = Value
  val ASX, LSE = Value 

}

我尝试使用如下

import com.mydomain.Market._

。 。

if (Market.ASX == currentMarket) {
...
}

当一切都在同一个包装中时,这是有效的。当我搬到新的包裹时,我现在得到了

未找到:价值市场

1 个答案:

答案 0 :(得分:4)

如果您导入Market,则可以直接使用ASXLSE 。您没有Market.ASX可用 - 如果您有对象Market可用,如果您执行import com.mydomain._会发生这种情况。

在内容包com.mydomain中导致com.mydomain._加载就像导入它一样,这就是为什么当你在同一个包中时可以说Market.ASX

当您在其他软件包中编写代码时,您需要import com.mydomain._然后使用Market.ASXimport com.mydomain.Market._,然后使用ASX