2015-05-29 3 views
3

Я использую Intellij для разработки программы Scala. Когда нажмите run, он отображает два приложения: HelloWorld и HelloWorld$:
enter image description here

В чем разница между 2-х приложений?

ответ

4

Для jvmHelloWorld$ является классом singleton HelloWorld.

Scala генерирует ObjectName$ класс для каждого объекта ObjectName.

Он также создает статические методы в этом классе, который выглядит следующим образом:

public static void main(String[] args) { 
    MODULE$.main(args); 
} 

От java вы можете либо получить экземпляр объекта ObjectName используя ObjectName$.MODULE$ статическое поле, или вызывать статические методы прокси-сервера на ObjectName$.

Смежные вопросы