什么时候构造单个对象?

Ale*_*nov 2 scala

object O {
  // construction code and member initialization
}
Run Code Online (Sandbox Code Playgroud)

构造,这个代码何时运行?

Mic*_*mer 12

O第一次访问时会调用代码(某些方法或某些属性).例如以下程序

object O {
  println("Hello from O")
  def doSome() {}
}

object App extends Application {
  println("Before O")
  O.doSome()
  println("After O")
}
Run Code Online (Sandbox Code Playgroud)

会屈服

Before O
Hello From O
After O
Run Code Online (Sandbox Code Playgroud)

简单定义是不够的O.此外,Class.forName("O")由于编译对象的名称是调用它将无法调用O$,因此调用Class.forName("O$")将执行.