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



枚举代码如下

package com.mydomain
object Market extends Enumeration {
  type Market = Value
  val ASX, LSE = Value 
}

我试着这样使用

import com.mydomain.Market._

。..

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

当所有东西都在同一个包中时,这是有效的。当我移动到一个新包时,我现在得到

not found: value Market

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

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

当您在不同的包中编写代码时,您需要使用import com.mydomain._然后使用Market.ASX,或者使用import com.mydomain.Market._然后使用ASX

相关内容

最新更新