在Scala中,我们可以写
object Foo { def bar = {} }
Run Code Online (Sandbox Code Playgroud)
这是如何由编译器实现的?我能够Foo.bar();从Java 调用,但是new Foo();从Java中调用错误cannot find symbol symbol: constructor Foo()
注意:这是输出的代码 scalac -print
package <empty> {
final class Foo extends java.lang.Object with ScalaObject {
def bar(): Unit = ();
def this(): object Foo = {
Foo.super.this();
()
}
}
}
Run Code Online (Sandbox Code Playgroud)