13

Kotlin クラスcompanion objectのブロックの前に初期化することは可能ですか? initもしそうなら、どのように?そうでない場合、同じことを達成する方法はありますか。

次のシナリオがあります。

class A(val iname: String) {
  init {
    foo.add(this)
  }

  companion object B {
    @JvmField val STATIC = A("hi")
    @JvmField val foo = mutableListOf<A>()   
  }

  fun printAllStatics() {
    for (a in foo) {
      print(a.iname)
    }
  }
}

呼び出すprintAllStaticsと、null ポインター例外が発生します。

4

2 に答える 2