如何将 main 方法移动到 Scala 中的另一个类?

发布于 2024-12-04 14:34:39 字数 572 浏览 2 评论 0原文

IntelliJ IDEA 10.5(可能这很重要)。

我是 Scala 的新手,所以我以一种尴尬的方式开始。我创建了一个包含两个类的文件——空的 MainApp 和另一个类 HelloWorld,其中包含 main 方法。

我编译并执行了它——IntelliJ 自动检测 HelloWorld 作为主类。没关系。

然后,我将 main 方法移至 MainApp,并删除(然后为空)HelloWorld 类。当我尝试运行它时,IntelliJ 还是坚持使用 HelloWorld。所以我重新配置了项目并选择 MainApp 作为主类。

我尝试运行它并得到这样的结果:

MainApp主方法应该是静态的

我完全困惑。首先,Scala 没有静态方法。其次,为什么它现在不编译,而之前编译时(使用 HelloWorld 类)。我认为唯一的要求就是有一个主要方法。

预先感谢您的帮助。

请注意:我知道我可以从头开始一个新项目来完全避免这个问题,但我想学习一些东西,即了解发生了什么,并修复这个项目.

IntelliJ IDEA 10.5 (probably this matters).

I am new to Scala, so I started in an akward way. I created one file with two classes -- empty MainApp and another class, HelloWorld with method main.

I compiled it and executed -- IntelliJ automatically detected HelloWorld as main class. It was OK.

Then, I moved main method to MainApp, and deleted (then empty) HelloWorld class. When I tried to run it, IntelliJ sticked to HelloWorld nevertheless. So I reconfigured project and selected MainApp as main class.

I tried to run it with such result:

MainApp main method should be static

I am completely puzzled. First of all, Scala does not have static methods. Second of all, why it does not compile now, when it compiled before (with HelloWorld class). I though that only requirement is having one main method.

Thank you in advance for your help.

Please note: I know I can start a new project from scratch to avoid the problem altogether, but I would like to learn something, i.e. get to know what is going on, and fixing this project.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

欲拥i 2024-12-11 14:34:39

Java 中的静态方法大致对应于 Scala 中的单例方法。您应该

object MainApp {
  def main(args : Array[String]) = ...
}

在代码中使用,而不是 class MainApp

static methods in Java roughly correspond to singleton methods in Scala. You should have

object MainApp {
  def main(args : Array[String]) = ...
}

in your code, not class MainApp.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文