我正在Scala中编写一个小型模拟程序。它是基于actor的,所以我创建了一个文件messages.scala
,其中包含系统中有效的所有消息。
除此之外,我有一个管理组件management.scala
和一个定义节点和链接类nodes.scala
的文件。管理和节点文件import sim.messages._
然后管理import sim.nodes._
,因为它需要能够从该文件中实例化事物。
问题来自Tick
和management.scala
使用的一种消息类型nodes.scala
。编译管理组件后,我得到:
error: reference to Tick is ambiguous;
it is imported twice in the same scope by
import sim.nodes._
and import sim.messages._
我尝试删除管理组件中的消息导入,因为它们显然已经导入到此范围,但随后又找不到它们了。想法?
答案 0 :(得分:10)
尝试
import sim.nodes._
import sim.nodes.{ Tick => NodesTick }
和/或
import sim.messages._
import sim.messages.{ Tick => MessagesTick }
当然,您必须使用正确的引用重命名Tick
。