scalaのobjectを事前初期化する方法
trait A
object B extends A {
println("B")
}
object C exetends A {
println("C")
}
object Main {
def main(args: Array[String]): Unit = {
println("RUN")
}
}
このとき、標準出力には
RUN
しか表示されません。
これをどうにか、明示的なアクセスなく
B
C
RUN
と表示されるようにしたいです。なんらかのかたちでアクセスされる前に初期化したいです。
特定のアノテーションをつけると、そのクラス・オブジェクトにアクセスして初期化してくれるとか、型パラメータAを指定したとき、そのサブクラスにアクセスできる、みたいな方法はないですか?