scalaのobjectを事前初期化する方法

[code]

    trait A
    
    object B extends A {
      println("B")
    }
    
    object C exetends A {
      println("C")
    }
    
    object Main {
      def main(args: Array[String]): Unit = {
        println("RUN")
      }
    }
    
[/code]

このとき、標準出力には

`RUN`

しか表示されません。

これをどうにか、明示的なアクセスなく

[code]

    B
    C
    RUN
    
[/code]

と表示されるようにしたいです。なんらかのかたちでアクセスされる前に初期化したいです。  
特定のアノテーションをつけると、そのクラス・オブジェクトにアクセスして初期化してくれるとか、型パラメータAを指定したとき、そのサブクラスにアクセスできる、みたいな方法はないですか？




アノテーションなんかないけど、それを使ったら、ちゃんと

[code]

     B C RUN
    
[/code]

を表示されると思います:

[code]

     trait A
    
     object B extends A {
       {
         println("B")
       }
     }
    
     object C extends A {
       println("C")
     }
    
     object Main {
       def main(args: Array[String]): Unit = {
         B
         C
         println("RUN")
       }
     }
    
[/code]

Scalaのオブジェクトはlazyですから、他の方法はないと思います。

その返事は不満足場合は、すみません。日本人じゃないですから、質問を勘違いしたかもしれないです。

