Как переместить основной метод в другой класс в Scala? - PullRequest
9 голосов
/ 15 сентября 2011

IntelliJ IDEA 10.5 (возможно, это имеет значение).

Я новичок в Scala, поэтому я начал неуклюже.Я создал один файл с двумя классами - пустым MainApp и другим классом, HelloWorld с методом main.

Я скомпилировал его и выполнил - IntelliJ автоматически определил HelloWorld в качестве основного класса.Все было в порядке.

Затем я переместил метод main в MainApp и удалил (затем пустой) класс HelloWorld.Когда я попытался запустить его, IntelliJ все же остановился на HelloWorld.Поэтому я перенастроил проект и выбрал MainApp в качестве основного класса.

Я попытался запустить его с таким результатом:

Основной метод MainApp должен быть статическим

Я полностью озадачен.Прежде всего, у Scala нет статических методов.Во-вторых, почему он не компилируется сейчас, когда он компилировался раньше (с классом HelloWorld).Я думаю, что это единственное требование - иметь один основной метод.

Заранее благодарю за помощь.

Обратите внимание: я знаю, что могу начать новый проект с нуля, чтобы избежатьпроблема в целом, но я хотел бы кое-что узнать, то есть узнать, что происходит, и исправить этот проект.

1 Ответ

11 голосов
/ 15 сентября 2011

статические методы в Java примерно соответствуют одноэлементным методам в Scala. Вы должны иметь

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

в вашем коде, а не class MainApp.

...