我可以在伴侣对象中使用"this"吗?

use*_*104 2 scala companion-object

在一个伴侣对象中,我希望有一个字段记录从伴侣类中实例化的所有实例(它是抽象的),我可以这样做吗?

特别是,我认为this会引用子类的任何实例,但是当我在伴随对象中使用它时它将不会编译.

Iul*_*gos 6

例如,你需要自己编写代码(不是线程安全的):

abstract class C {
  // executed by all subclasses during construction
  C.registerInstance(this) 
}


object C {
  private val instances = ListBuffer[C]()
  def registerInstance(c: C) {
    instances += c
  }
}
Run Code Online (Sandbox Code Playgroud)