[英]Scala-IDE or Scala strange import behavior
我正在做一个小型Scala项目。 我有“进口”以下问题:
如果在我的文件之一的顶部,使用以下命令导入了两件事:
import main.Main._
import main.game.Game
^^^^
它在带下划线的“ main”字样处给我以下错误消息:“对象Main中的方法main缺少参数;如果要将它视为部分应用的函数,请在此方法后加上'_'”,这很奇怪,尤其是这只是一个导入语句。 而且自然不会发生实际的导入。 起初,我又想到了分号推理的怪癖,但事实并非如此。 如果我交换两行并这样写:
import main.game.Game
import main.Main._
那么一切都很好。
有人可以阐明这一点吗? Scala有什么特别之处吗?
大概您在object Main
有一个main
方法。 因此,在import main.Main._
之后import main.Main._
main
引用此方法而不是main
包。 您可以通过几种方式避免它:
main
方法,正如Daniel C. Sobral的答案所暗示的那样。 明确地说,您需要顶级main
软件包:
import _root_.main.game.Game
在大多数情况下,遵循正常的Java程序包命名约定应避免出现此问题,因为您不太可能拥有名为com
或org
成员(或子程序包)(尽管net
可能是一个问题)。
您在main.Main
内部确实有一个名为main
的方法,不是吗? 好了,自从您导入它以来,它现在已经用main
遮盖了该包 。 您可以尝试执行以下操作以确认:
import main.Main.{main => _, _}
import main.game.Game
这将使main
不被导入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.