Scala では、次のように記述できます。
object Foo { def bar = {} }
これはコンパイラによってどのように実装されていますか? Javaから呼び出すことはできFoo.bar();
ますが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();
()
}
}
}