フィールドの初期化を遅延させ、アサートを実行するにはどうすればよいですか?プロパティを遅延的に初期化してアサートすることは可能ですか?
私は
val table: Array<FormatInfo> by lazy {
val t = arrayOf(...)
assert(table.size == FORMAT_COUNT, { System.err.println("GLI error: format descriptor list doesn't match number of supported formats") })
t
}
をしようとしたが、それはオーバーフローに行く:
java.lang.StackOverflowError
at gli.GliKt$table$2.invoke(gli.kt:451)
at gli.GliKt$table$2.invoke(gli.kt)
at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:131)
at gli.GliKt.getTable(gli.kt)
at gli.GliKt$table$2.invoke(gli.kt:693)
at gli.GliKt$table$2.invoke(gli.kt)
at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:131)
at gli.GliKt.getTable(gli.kt)
at gli.GliKt$table$2.invoke(gli.kt:693)...
どうすれば解決できますか?
をところで、私は 'field' – voddan
は、例外が発生したコードを隠さないではない、これは' property'と呼ばれていると思います。あなたが間違っていることを私たちに推測させてはいけません。 –
両方とも固定、ありがとう – elect