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 ポインター例外が発生します。