【发布时间】:2014-10-27 17:12:38
【问题描述】:
我正在尝试使用 akka,我已经编写了两个具有主要功能的虚拟演员:
HelloActor
package akkaSample.severalSystems
import akka.actor.{Actor, ActorSystem}
class HelloActor extends Actor {
def receive = {
case "mew" => println("I said mew")
case "hello" => println("hello back at you")
case "shutdown" => context.stop(self)
case _ => println("huh?")
}
}
object Main extends App {
val system = ActorSystem("HelloSystem")
println("started")
}
其他演员
package akkaSample.severalSystems
import akka.actor.{Actor, ActorSystem}
class OtherActor extends Actor {
def receive = {
case "mew" => println("I said mew")
case _ => println("huh?")
}
}
object Main extends App {
val system = ActorSystem("HelloSystem")
println("started")
}
我正在尝试从 intellij idea 运行 main 函数(来自 OtherActor 和 HelloActor)并得到编译错误:
Error:(12, 8) Main is already defined as object Main
object Main extends App {
^
为什么我会得到它?主要功能放在不同的文件中!如何在 scala/akka 中编写 2 个主要功能并从相邻的 actor 中运行它们?
还有空的不扩展actor主函数工作的scala类,这里是代码:
一级
package akkaSample.mainError
class One {
}
object Main extends App {
println("Hi!")
}
二级
package akkaSample.mainError
class Two {
}
object Main extends App {
println("Hi!")
}
没有编译错误。
P.S.这只是为了试验,我不打算将具有两个主要功能的代码投入生产。
【问题讨论】:
-
我用 sbt 编译了代码,我收到了同样的错误,也有原始的 scalac。
scalac src/main/scala/akkaSample/mainError/One.scala src/main/scala/akkaSample/mainError/Two.scala
标签: scala intellij-idea akka main intellij-13