В Scala мы можем написать
object Foo { def bar = {} }
Как это реализовано компилятором? Я могу вызвать Foo.bar();
из Java
но new Foo();
из Java дает ошибку cannot find symbol symbol: constructor Foo()
- Поддерживает ли JVM одиночные синтаксисы?
- Возможно ли иметь класс на Java, который не имеет конструктора?
Примечание: здесь выводится код scalac -print
package <empty> {
final class Foo extends java.lang.Object with ScalaObject {
def bar(): Unit = ();
def this(): object Foo = {
Foo.super.this();
()
}
}
}